找不到网页元素

时间:2019-02-09 14:50:57

标签: selenium internet-explorer xpath

我找不到Web元素,此Web应用程序仅在Internet Explorer中打开,并且我使用了所有可能的方法来单击,但没有运气。 我尝试过的Xpath定位器:

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

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

我也尝试过使用动作类和JavaScript单击元素。

URL中附带的DOM,请查看here

2 个答案:

答案 0 :(得分:0)

在节点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')]

如果有多个匹配项,请尝试使用如上所述的索引方法。

或者您可以尝试以下修改xpath的方法:

//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')]

希望对您有帮助...

答案 1 :(得分:-1)

除了在Firefox中,我什至没有在IE中尝试过任何自动化操作,有时会遇到这些问题,除了.click()函数外,我的解决方法是send_keys(Keys.RETURN)。另外,在单击或发送键以确保元素已加载之前,我正在使用time.sleep(x)。