【问题标题】:Chrome: different xpath from different machineChrome:来自不同机器的不同 xpath
【发布时间】:2016-02-13 17:04:10
【问题描述】:

我正在使用带有 selenium 的 python 在 Windows 上实现自动化。

我使用inspect element 来查找一个元素并对其进行一些操作。 它对我来说非常好。

a= self.driver.find_element_by_xpath('//*[@id="dia2"]/p')

我的同事采用了相同的方法,但得到了不同的 xpath。

a= self.driver.find_element_by_xpath('//*[@id="dia4"]/p')

他的代码在他的机器上不起作用。当他用 dia2 替换 dia4 时,他的代码有效。 任何想法,为什么我们从 2 台不同的机器获得不同的 xpath。我们都使用窗户,相同的网站,相同的元素。还有哪些其他因素决定 xpath。我会在两台机器上检查它们。

【问题讨论】:

  • 你确定两个页面的所有 dom 都完全相同吗?或者有没有geotargetting
  • 您是否尝试过同时运行测试?因为显然您正在访问不同的对象/或对象的 ID 已更改
  • 是的,同时运行。元素只是一个字符串,不会动态变化。
  • @SIslam:如何检查 dom
  • @user3388005 我的意思是页面源代码!

标签: python google-chrome selenium xpath inspect-element


【解决方案1】:

不知道抛出的异常类型很难描述。

我在移动机器上运行测试时也有类似的经历。 应用程序代码的工作方式是在分辨率不同时隐藏一些 DOM 对象并显示那些被隐藏的对象。 (DOM 对象对 webDriver 可见但未显示) 我通过获取与我的条件匹配的元素列表来处理它并遍历它们以找出其中哪些是可见的。

【讨论】:

  • 例外是:找不到元素
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 2012-03-14
  • 2012-09-12
  • 2014-05-28
  • 2017-06-25
  • 1970-01-01
相关资源
最近更新 更多