我正在使用selenium-java自动化一些测试(它是自学的)。我被困在单击一个超链接,但这个href是非常特殊的,因为如下所示:
<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();选项,但没有成功。
谢谢你们!
发布于 2020-04-03 00:13:12
您应该能够找到link元素,方法是首先通过查找DOM并获取该元素的xpath来查找其父元素。然后使用该父元素查找标记为"a“的元素
WebElement parent = findElement(By.xpath("/*path to parent element here*/"));
parent.findElement(By.tagName("a")).click();请注意,父元素可能有多个tagName "a“的子元素,如果是这样的话,请使用findElements()来获取该父元素的所有超链接的集合。然后在集合中搜索您想要的。
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定位元素。
findElement(By.linkText("/*The hyperlinks text*/")).click();希望这能有所帮助!
发布于 2020-04-03 00:09:07
尝试这两个xpath中的任何一个。
driver.findElement(By.xpath("//a[contains(@href,'/myWebPage.html')]//span[text()='My Web Page']")).click();或者
driver.findElement(By.xpath("//a[.//span[text()='My Web Page']]")).click();或css选择器
driver.findElement(By.cssSelector("a[href*='/myWebPage.html']>span")).click();发布于 2020-04-03 20:56:03
这对我很有效:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("My Web Page"))).click();我在元素上添加了一个等待,使其成为可点击的,并且它工作正常
谢谢你们的帮助。
再见
https://stackoverflow.com/questions/60995881
复制相似问题