如何根据其href属性选择页面中的链接,LinkText不起作用

时间:2016-06-03 00:48:41

标签: java selenium xpath

我正在尝试根据" href"选择一个链接。带TextLink的属性。我不能在这里使用xpath,因为每次页面加载时链接都会在页面周围移动。请建议

我的HTML:

<li class="navw2">
<a href="/index/lobby.html">购彩大厅</a>
</li>

我的代码:

element=driver.findElement(By.LinkText("购彩大厅")).onlick();

3 个答案:

答案 0 :(得分:0)

使用x-path,尝试以下代码:

WebElement element = driver.findElement(By.XPath("//li[@class='navw2']/a"));
element.click();

答案 1 :(得分:0)

Encoding就是问题所在。不是Xpath。您可以继续使用以下任何选项,而不是使用LinkText: -

WebElement element = driver.findElement(By.XPath("//li[@class='navw2']/a"));
element.click();

或者

WebElement element = driver.findElement(By.XPath("//a[@href='/index/lobby.html']"));
element.click();

或者

driver.findElement(By.cssSelector("li > a"));
element.click();

答案 2 :(得分:-1)

试试这个xpath:

WebElement element = driver.findElement(By.XPath("//li[@class='navw2']/a[contains(text(),'购彩大厅')]"));
element.click();

如果可能有多个相同类型的链接,您可以使用:

List<WebElement> elements = driver.findElements(By.XPath("//li[@class='navw2']/a[contains(text(),'购彩大厅')]"));
elements.get(0).click();

或者

List<WebElement> elements =  driver.findElements(By.XPath("//li[@class='navw2']/a[@href='/index/lobby.html'  and contains(text(),'购彩大厅')]"));
elements.get(0).click();