我的脚本代码中包含以下行,我从Selenium IDE处获得的XPath正常运行:
int count = 0 ;
for(;;)
{
// Process whole array on every iteration
for( int i = 0; i < sizeof(array)/sizeof(*array); i++ )
{
xxxx( array[i] ) ;
}
if( count == N - 1 )
{
count = 0 ;
// Do yyyy this every N iterations
yyyy() ;
}
count++ ;
}
自动化测试在此停止并出现此错误:
driver.find_element_by_xpath("(//a[contains(@href, '')])[20]").click()
如何解决此问题?
感谢您的帮助。
答案 0 :(得分:4)
看到您只是想抓取数据,建议您使用以下解决方案:
element = driver.find_element_by_xpath("(//a[contains(@href, '')])[20]")
driver.execute_script("arguments[0].click();", element)
通过Java单击元素,而不是硒使用“自然”单击(以尝试模拟用户体验)。
我回答了a similar question here,它也链接到该文章上的另一篇文章。
答案 1 :(得分:0)
如果其他人有相同的情况,我想分享我的经验。
我收到相同的错误消息“ 消息:元素不可交互 ”。
经过大约两个小时的故障排除,结果发现XPATH标识了另一个 hidden 元素。因此,我修改了XPATH以确保仅捕获目标元素。
答案 2 :(得分:0)
有时您可能需要复制完整的 XPATH。这是我发现的一项工作。
答案 3 :(得分:0)
我能够通过使用完整的 Xpath 而不是 x 路径来解决这个问题,我希望这会有所帮助。我认为这是因为我想点击的元素被另一个元素包裹,所以它不可交互