我正在尝试根据" href"选择一个链接。带TextLink的属性。我不能在这里使用xpath,因为每次页面加载时链接都会在页面周围移动。请建议
我的HTML:
<li class="navw2">
<a href="/index/lobby.html">购彩大厅</a>
</li>
我的代码:
element=driver.findElement(By.LinkText("购彩大厅")).onlick();
答案 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();