无法通过xpath查找元素来进行选择

时间:2018-05-30 10:58:14

标签: java selenium selenium-webdriver xpath

我正在尝试使用xpath找到此元素时遇到严重问题:

class="accountSettingsTextBase_1u09j40-o_O-accountSettingsItemText_10y8axf" aria-current="false" href="/account/signin">Log In

我试过了:

"//*[contains(text(),'Log In')]"

以及实际的xpath:

//*[@id='root']/div/header/div[3]/nav/ul/li[1]/a

以及链接文本仍然无法正常工作,任何想法?

顺便说一句,HTML中缺少锚标记,因为它只是显示“登录”并添加了

完整的HTML: Full HTML

4 个答案:

答案 0 :(得分:2)

可能的xpaths:

//a[@href='/account/signin']

OR

//a[contains(.,'Log In')]

OR

尝试使用Css选择器:

a[class^='accountSettingsTextBase_' ][class*='accountSettingsItemText']

答案 1 :(得分:0)

//[contains(text(),'Log In')]

你遗失了一些东西:

//*[contains(text(),'Log In')]

答案 2 :(得分:0)

为什么不使用

driver.findElement(By.linkText("Log In"))

driver.findElement(By.partialLinkText("Log In"))

因为元素是anchor标签?

答案 3 :(得分:0)

请添加显式等待,然后检查

WebDriverWait wait=new WebDriverWait(driver,20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(text(),'Log In')]")));
driver.findElement(By.xpath("//*[contains(text(),'Log In')]")).click();