我正在尝试使用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
答案 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();