我找不到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
答案 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)。