【问题标题】:Interact with pseudo-elements with Selenium Webdriver?使用 Selenium Webdriver 与伪元素交互?
【发布时间】:2021-06-18 15:18:05
【问题描述】:

我正在使用带有 Java 的 Selenium Webdriver。 我试图与作为伪元素::before

括起来的锚标记进行交互

但我无法与锚元素交互。 这是 HTML 结构的屏幕截图。

有

JavaScriptExecutor,我明白了,我们可以使用window.getComputedStyle().getPropertyValue() 获取propertyValue,但我不确定如何与<a> 元素交互并执行点击。

最初,我尝试单击锚元素,而不将伪元素视为简单的元素交互。

要获取元素: private By tabRawView_By_CSS = By.cssSelector("[tabid='raw-view'][role='tab']");

但这件作品没有抛出任何错误,但也没有点击元素。

然后我想到了使用 JavaScriptExecutor 并尝试首先在 Developers Tool 中运行,如下图所示,但找不到合适的选项。

谁能推荐一下?

【问题讨论】:

  • 用纯文本格式的 HTML 标记您的绑定语言、代码尝试和错误
  • @cruisepandey:这有帮助吗?因为我在最初的尝试中没有看到任何错误,但没有像我预期的那样进行交互。因此,我正在考虑使用 JavaScriptExecutor 和 getComputedStyle 来获取锚标记元素,但不知道如何继续

标签: selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

如果是 Java 绑定,并且您想要做的就是在具有 Raw view as a text 的 achor 标记上使用 click。

您可以尝试使用 ExplicitWaits :

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Raw View"))).click();

【讨论】:

  • 谢谢@cruisepandey。主要问题是 JavaScript 的点击。您的上述解决方案也有效。我继续使用旧的 findby 元素,但将 click() 从 JavaScript 点击更改为普通点击。
猜你喜欢
  • 2022-11-24
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
  • 1970-01-01
相关资源
最近更新 更多