首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用selenium-java点击href链接

如何使用selenium-java点击href链接
EN

Stack Overflow用户
提问于 2020-04-03 00:00:44
回答 4查看 271关注 0票数 0

我正在使用selenium-java自动化一些测试(它是自学的)。我被困在单击一个超链接,但这个href是非常特殊的,因为如下所示:

代码语言:javascript
复制
<a tabindex="-1" href="../../myWebPage.html"><span>My Web Page</span></a>

我的java代码是:

1.- driver.findElement(By.xpath("//a[@href='../../myWebPage.html']")).click(); 2.- driver.findElement(By.xpath("//a[@href='https://RealHost/pag1/myWebPage.html']")).click();

我使用的第二个选项是真实链接,但它们都不起作用。

你能帮帮我吗?

附言:我也使用了driver.findElement(By.LinkText("https://RealHost/pag1/myWebPage.html")).click();选项,但没有成功。

谢谢你们!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-04-03 00:13:12

您应该能够找到link元素,方法是首先通过查找DOM并获取该元素的xpath来查找其父元素。然后使用该父元素查找标记为"a“的元素

代码语言:javascript
复制
WebElement parent = findElement(By.xpath("/*path to parent element here*/"));
parent.findElement(By.tagName("a")).click();

请注意,父元素可能有多个tagName "a“的子元素,如果是这样的话,请使用findElements()来获取该父元素的所有超链接的集合。然后在集合中搜索您想要的。

代码语言:javascript
复制
WebElement parent = findElements(By.xpath("/*path to parent element here*/"));
List<WebElement> elements = parent.findElements(By.tagName("a")).click();
//search the list for the correct link

您可以尝试的另一件事是通过linkText定位元素。

代码语言:javascript
复制
findElement(By.linkText("/*The hyperlinks text*/")).click();

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2020-04-03 00:09:07

尝试这两个xpath中的任何一个。

代码语言:javascript
复制
driver.findElement(By.xpath("//a[contains(@href,'/myWebPage.html')]//span[text()='My Web Page']")).click();

或者

代码语言:javascript
复制
driver.findElement(By.xpath("//a[.//span[text()='My Web Page']]")).click();

或css选择器

代码语言:javascript
复制
driver.findElement(By.cssSelector("a[href*='/myWebPage.html']>span")).click();
票数 0
EN

Stack Overflow用户

发布于 2020-04-03 20:56:03

这对我很有效:

代码语言:javascript
复制
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("My Web Page"))).click();

我在元素上添加了一个等待,使其成为可点击的,并且它工作正常

谢谢你们的帮助。

再见

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60995881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档