如何使用 Selenium Java 标记超链接

Posted

技术标签:

【中文标题】如何使用 Selenium Java 标记超链接【英文标题】:How to mark a Hyperlink with Selenium Java 【发布时间】:2020-11-13 17:29:09 【问题描述】:

我正在尝试在此网站上标记超链接“编辑此页面”:https://www.selenium.dev/documentation/en/getting_started/quick/

我的代码是:

driver.get("https://www.selenium.dev/documentation/en/getting_started/quick/");
WebElement elem = driver.findElement(By.linkText("Edit this page"));
Actions actions = new Actions(driver);
        Thread.sleep(3000);
        actions.moveToElement(elem)
        .click()
        .keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL)
        .build().perform();

使用此代码,它将标记页面上的所有文本。我怎样才能只标记超链接?

【问题讨论】:

【参考方案1】:

改为使用Actions,尝试通过设置元素的背景颜色来使用javascriptExecutor

WebElement elem = driver.findElement(By.linkText("Edit this page"));
((JavascriptExecutor)driver).executeScript("arguments[0].style.backgroundColor='lightblue'", elem);

您需要以下导入:

import org.openqa.selenium.JavascriptExecutor;

我尝试了以下结果:

【讨论】:

您好 frianH,感谢您的回答。您已设置元素的背景颜色。我不知道,当你用鼠标标记链接文本时是否是同样的事情???这与以下内容是否相同:keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL) @MusterTester 那不一样。但我认为,如果您的问题是“如何标记超链接”,这是一种简单的实现方式。问题是你接下来想通过标记这些元素来实现什么,所以你必须使用Actions 方法?

以上是关于如何使用 Selenium Java 标记超链接的主要内容,如果未能解决你的问题,请参考以下文章

在HTML代码中,超链接元素的标记是啥?

如何用python的selenium提取页面所有资源加载的链接

如何通过 IE11 解决 selenium python 中嵌套 HTML 中的超链接?

selenium2调用iedriver打开ie为啥点页面超链接没有反应呢

selenium IDE - 如何存储超链接地址然后访问该 URL?以前工作过

如何使用Selenium WebDriver查找错误的链接?