繁体   English   中英

python selenium chromedriver xpath“没有这样的元素”

[英]python selenium chromedriver xpath “no such element”

我在iMac(操作系统:Sierra)上运行Python 3.6。 我使用的是ChromeDriver 2.33和最新版本的Selenium软件包(来自PIPY)。 我正在尝试访问(使用find_element_by_xpath )表行的列元素,如下所示:

HTML代码

我可以访问行(TR标签)中嵌入的前三个单元格(TH标签)。 当我到达第四个单元格(TH标签)时,chrome驱动程序报告(通过python)“没有这样的元素”。

我在加载页面后等待10秒钟,然后尝试访问元素(此外,我可以在此行中增加单元格1-3),因此这显然不是时间问题。

Web元素(单元格4)在Web浏览器中可见。 另外,我在chrome开发人员中使用了Web元素搜索功能来检查xpath(并且可以很好地进行检查)。 显然,问题不是该元素不可见。

我想知道问题是什么? 或者至少我想要一些有关如何调试它的建议?


回应评论:我使用以下python调用

CHROMEDRIVER.find_element_by_xpath(“ // * [@ id =” mainContent_ugReservationGrid_tableGridParent“] / div 1 / table / thead / tr [3] / th [INDEX]”)'其中'INDEX'是我的循环变量。1-3工作正常,但当循环变量达到4时,出现异常' No Such Element '。


用Firefox和geckodriver取代了Chrome:Chrome界面似乎有问题。 Firefox可以正常工作,没有其他任何更改。

如果您在引用其他表单元格时没有遇到时序问题,那么有必要进一步验证您正在使用的xpath来处理似乎无法到达的元素。

即使我倾向于主要通过Chrome运行所有自动化程序,我还是偶尔会使用带有FirePath插件的Firefox来选择/验证页面上的定位器。 该插件特别有用,因为它将产生给定定位器的所有匹配项。 自动化可能失败(或至少行为无法预测)的原因之一是定位器可能具有多个匹配项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM