【问题标题】:How to click on the element using selenium where only "::Before" tag is present如何使用 selenium 单击仅存在“::Before”标签的元素
【发布时间】:2019-04-11 01:33:56
【问题描述】:

我正在尝试使用 Selenium 和 Java 在日历中导航下个月,但对于 >(日历上的按钮以在下个月导航)元素仅存在以下信息。

<a class="react-datepicker__navigation react-datepicker__navigation--next">
::before
</a>==$0

并且类标签没有指向&gt;,而是指向页面上的其他位置,只有“::before”指向元素&gt;

请建议如何点击&gt;元素?

我尝试使用Xpath //*[@class='react-datepicker__navigation react-datepicker__navigation--next'],但它指向页面上的其他位置,所以这不起作用。

driver.findElement(By.xpath("//*[@class='react-datepicker__navigation react-datepicker__navigation--next']")).click();

【问题讨论】:

  • 在浏览器开发工具元素搜索中尝试该 xpath 时,您看到了多少元素?
  • 只有一个元素正在显示,但没有指向“>”按钮
  • 你不能用 xpath 选择它,你需要使用 getComputedStyle()
  • @vishalsaxena 可能是因为另一个日期选择器存在相同的类名,您能否验证任何其他元素是否存在相同的类名?
  • @pguardiario 你能解释一下吗?

标签: java html selenium


【解决方案1】:

我不能 100% 确定 WebDriver 是否可以为您检索伪元素内容。我认为您需要使用Javascript。下面的作品,我测试了。

打开日期选择器

driver.findElement(By.xpath("//input[@class='fl-input _9KqY' and @data-reactid='195']")).click();   

点击下一个元素或下个月

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("document.querySelector('a.react-datepicker__navigation--next',':before').click();");

【讨论】:

  • 我还有一个关于 Javascript 的问题。实际上我正在使用 Java 学习 selenium,所以请您建议我在哪里可以学习 Javascript for selenium
【解决方案2】:

我可以使用 css 点击下一个链接。

.react-datepicker__navigation--next

【讨论】:

  • 是的,它也可以工作,你能建议我如何使用 Xpath 来实现同样的效果吗?
猜你喜欢
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
  • 2022-12-04
相关资源
最近更新 更多