如何解决此问题元素不可交互的Selenium Python

时间:2019-05-17 22:03:46

标签: python selenium selenium-webdriver selenium-chromedriver

我的脚本代码中包含以下行,我从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()

如何解决此问题?

感谢您的帮助。

4 个答案:

答案 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 路径来解决这个问题,我希望这会有所帮助。我认为这是因为我想点击的元素被另一个元素包裹,所以它不可交互