【问题标题】:Webdriver: finding and clicking hidden element, where id constantly changingWebdriver:查找并单击隐藏元素,其中 id 不断变化
【发布时间】:2016-06-07 10:57:33
【问题描述】:

我是 selenium webdriver 的新手,我很难在网页上找到一个按钮,因为它的 Id 不断变化,并且没有其他属性可用于识别此元素。请看下面的代码。 有人可以看看这段代码并帮助我如何识别这个按钮元素。

selenium webdriver hidden elements

【问题讨论】:

  • 从上面的文字中找到按钮呢?
  • 你的代码在哪里??
  • @Aravindh 无法从链接文本中找到它。
  • @Software_Engineer 我附上了html代码的图片。
  • 参考你提到的代码,如果你想选择第一个按钮,你可以找到使用类名。要获得第一个按钮,请使用 .header-navigation .btn.cta_buttons__link--button-1

标签: java selenium dynamic webdriver elements


【解决方案1】:

您应该通过xPath 尝试如下:-

WebDriverWait wait = new WebDriverWait(driver, 1000);
WebElement el = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xPath("//div[contains(@class, 'header-navigation__cta-buttons-wrapper')]/a[contains(@class, 'cta-buttons__link--button-1')]")));
el.click();

确保该元素不在框架内..

希望对你有帮助..:)

【讨论】:

  • tbh 作为一个新手,我不懂代码。但我复制粘贴了你的代码,它可以工作。非常感谢!!现在我可以单击填充联系我们表单的按钮,现在我需要尝试识别表单中的其他项目,希望使用您的代码:)
  • @Ivar 请接受答案...如果您对答案感到满意。
  • 为什么我们使用 WebDriverWait 和 ExpectedConditions ?我从来没有听说过这些。我会先通过互联网挖掘,然后再找你。谢谢你的帮助!你是一个传奇!
  • @Ivar 有时当您在 webPage 中导航时,由于 Internet 速度慢或其他原因,您要定位的元素未完全加载到页面上..此时如果会去查找元素正确的定位器..当您的逻辑正确时,似乎找不到元素...这就是为什么我们使用WebDriverWait 等到元素在页面上完全加载然后去查找元素..
  • @Ivar Selenium 提供了ExpectedConditions.. 的概念,即您希望如何等待一个元素....您应该点击此链接以更好地了解所有条件..seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/…跨度>
猜你喜欢
  • 2016-01-07
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 2012-08-15
  • 2012-09-03
  • 2016-12-06
  • 2020-01-29
  • 2019-09-20
相关资源
最近更新 更多