Не удается найти webelement - PullRequest
0 голосов
/ 09 февраля 2019

Я не могу найти веб-элемент, это веб-приложение открывается только в Internet Explorer, и я использовал все возможные способы нажатия, но не повезло.Xpath-локаторы, которые я пробовал:

"//form[@id='Form1']//a[contains(text(),'Age Range')]"

и

"//form[@id='Form1']//a[@id='rptTables1_ctl07_hlTablename1']"

, также я пробовал щелкать по элементу, используя класс действий и javascript.

Прикрепленный DOM в URL, пожалуйста, посмотрите здесь

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

В узле a значение id не является статическим, поэтому вы не можете найти этот элемент, используя значение id, но вы можете использовать частичное значение id, например, похоже, что rptTables1_ уникальнов значении id, а оставшаяся часть изменяется, поэтому применение contains() к этому может сработать.

Попробуйте приведенный ниже xpath, если есть только совпадение:

//a[contains(@id, 'rptTables1_')]

Попробуйте приведенный ниже xpath, предоставивиндекс соответствия, если существует несколько совпадений xpath:

(//a[contains(@id, 'rptTables1_')])[Matching index number]

например, если индекс совпадения 3, вы можете написать так (//a[contains(@id, 'rptTables1_')])[3].

Или вы можете использоватьAdvanced Performance Parameters Panel Topics текст для идентификации этого элемента.

//a[contains(text(), 'Advanced Performance Parameters Panel Topics')]

Опять же, если есть несколько совпадений, попробуйте использовать метод индексации, как упомянуто выше.

Или вы можете попробовать ниже изменить ваши xpaths:

//form[@id='Form1']//a[contains(@id, 'rptTables1_')]

или

(//form[@id='Form1']//a[contains(@id, 'rptTables1_')])[Matching index number]

или

//form[@id='Form1']//a[contains(text(), 'Advanced Performance Parameters Panel Topics')]

Надеюсь, это поможет ...

0 голосов
/ 09 февраля 2019

Я вообще не пробовал никакой автоматизации в IE, кроме Firefox, иногда я сталкиваюсь с этими проблемами, и моя работа, кроме функции .click (), это send_keys (Keys.RETURN).Кроме того, я использую time.sleep (x) перед нажатием или отправкой ключей, чтобы убедиться, что элемент загружен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...