Выбор НЕ iframe

Мне нужно найти элемент:

//div[contains(@class, 'bPageBlock')][.//*[.='Agreement Documents']]//div[@class='pbBody']//tr[contains(@class,'dataRow')]//a[text()='View']

Проблема в том, что здесь обнаруживаются два элемента, а мне нужен только один. Один находится под iframe, а другой - нет. Было бы легко, если бы я хотел тот, который находится под iframe. я мог бы сделать

//iframe///div[contains(@class, 'bPageBlock')][.//*[.='Agreement Documents']]//div[@class='pbBody']//tr[contains(@class,'dataRow')]//a[text()='View']

Однако, как вы, наверное, догадались, мне нужен тот, который НЕ находится в iframe. Я не знаю, как указать что-то вроде // не iframe //. И даже если бы я мог, // нашел бы что-то на шаг ниже или выше, что не было бы iframe.

Любые предложения, как найти тот, который НЕ находится под iframe. Иные корни и пути кажутся одинаковыми. Я пробовал много разных вещей.

Если вы хотите увидеть конкретный iframe:

<iframe frameborder = "0" id = "RLPanelFrame" name = "RLPanelFrame" src = "/emptyHtmlDoc.html" title = "Hidden Frame - Ignore" style = "height: 176px;"></iframe>

Затем под ним есть много подразделов с автоматически сгенерированными бессмысленными идентификаторами.

Я не думаю, что смогу найти каждый с помощью driver.find (), получить полный xpath и проверить наличие «iframe», потому что у Selenium нет экстрактора xpath. Я предполагаю, что для каждого из них я мог бы получать родительский элемент, пока не добрался до // html или // iframe, но это заняло бы много времени.

Какие-либо предложения? Это с Java и Selenium

Это похоже на XY проблема. Вместо того, чтобы просить помощи в решении проблемы, отредактируйте свой вопрос и спросите о реальной проблеме. Что ты пытаешься сделать?

DebanjanB 12.10.2018 22:28

У вас есть 2 элемента, один под iframe, а другой нет. Selenium может найти элемент под iframe, только если вы на него переключились. Ваш селектор должен видеть только 1 элемент, иначе у вас возникнет другая проблема. Поделитесь html.

Sers 12.10.2018 23:13

Возможный дубликат Как наложить iframe и разрешить переход по клику

Mate Mrše 15.10.2018 11:40

Спасибо. Я думаю, что меня смущало, так это то, что с Chrome в Inspect, когда я ввел xpath, он также нашел те, которые находятся под iframe, но похоже, что driver.find () не будет?

Tony 15.10.2018 13:35
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
37
0

Другие вопросы по теме