【问题标题】:TimeOutException when use link_text with explicit wait in selenium webdriver with python在使用 python 的 selenium webdriver 中使用带有显式等待的 link_text 时出现 TimeOutException
【发布时间】:2016-01-16 13:11:50
【问题描述】:

我在 python 中使用 selenium webdriver。我想根据它们指向的链接使用显式等待定位元素。为了实现这一点,我正在使用

element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, 'dashboard')))

这是相应的 html 代码:

<li class="headerLink" name="dashboard"><a href="http://www.xy.com/dashboard" class="touch">Dashboard</a></li>

每次我运行这个查询时,我都会得到TimeOutException,但如果我使用By.ID,我就能找到元素。我尝试对 link_text 工作正常的其他网站做同样的事情。

如果我在没有明确等待的情况下使用,我可以找到元素,但经过额外修改,我会得到StaleException

我无法找到解决方案。这个你能帮我吗。 提前致谢。

【问题讨论】:

  • 能贴出相关的html吗?
  • but if I use By.ID, I am able to locate element - 您提供的元素没有 ID。另外,您是否在页面上看到任何 iframe 元素?
  • 我已经尝试将id 用于其他标签。不,它没有 iframe。无论如何,我每次搜索时都在使用 default_context()。
  • 我也让它使用 xpath 工作。我仍然不知道为什么 partial_link_text 和 link_text 不起作用,但使用 xpath,selenium 似乎找到了元素。

标签: python selenium selenium-webdriver exception-handling


【解决方案1】:

也许它不是使用 PartialLinkText 的正确标签?

通过部分链接文本查找元素

Selenium 允许您使用部分标识来标识超链接控件 文本。这在动态生成文本时非常有用。 换句话说,一个网页上的文字可能与您的 下次访问。我们也许可以使用这些人共享的通用文本 动态生成的链接文本来识别它们。 // 将点击 “取消”链接

尝试使用链接文本

仅针对超链接通过链接文本查找元素。使用链接的文本是 可能是点击链接的最直接方式,因为它是我们在上面看到的 页面。

【讨论】:

  • 我也尝试过 LINK_TEXT 但它似乎不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 2014-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多