【问题标题】:Python selenium webdriver - unable to click an element by xpath at a single goPython selenium webdriver - 无法一次通过xpath单击元素
【发布时间】:2013-09-25 07:46:14
【问题描述】:

我在 python 中使用 selenium webdriver,以便找到一个元素并单击它。这是代码。我将“数字”传递给此代码的方法,但这不起作用。我在浏览器上看到找到了该元素,但它没有单击该元素。

subIDTypeIcon = "//a[@id='s_%s_IdType']/img" % str(number)
self.driver.find_element_by_xpath(subIDTypeIcon).click()

然而,我尝试放置 'self.driver.find_.....' 两次,令我惊讶的是它有效

subIDTypeIcon = "//a[@id='s_%s_IdType']/img" % str(number)
self.driver.find_element_by_xpath(subIDTypeIcon).click()
self.driver.find_element_by_xpath(subIDTypeIcon).click()

我在远程服务器上打开了浏览器,因此有时会出现超时问题。

有没有合适的方法来完成这项工作?为什么相同的语句放置两次时它会起作用

【问题讨论】:

    标签: python xpath selenium click


    【解决方案1】:

    这是一个常见问题,也是创建抽象的每页帮助程序类的主要原因。您通常需要一个循环来尝试在几秒钟内找到一个元素,以便浏览器可以更新 DOM,而不是盲目地查找元素。

    第二个版本通常有效,因为开始加载新页面不会使 DOM 失效。这只发生在远程服务器开始向浏览器发送足够多的新文档时。当您使用浏览器时,您可以自己看到这一点:页面不会在您单击链接的同时变为空白。相反,它们会停留一段时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 2021-01-20
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      • 2017-06-09
      相关资源
      最近更新 更多