我正在尝试为 github 登录页面上的错误消息获取 XPATH。( https://github.com/login )。但是我无法在 chrome 中获取此元素的 XPATH我输入了不正确的凭据并看到“不正确的用户名或密码”之后:我试图通过 chrome 复制 XPATH$x("//*[@id='js-flash-container']/div/div/text()")但它返回 (2) [text, text]$x("//div[contains(text(), 'Incorrect username or password.')]")但它什么也没返回HTML:<div class="flash flash-full flash-error"> <div class="container"> <button class="flash-close js-flash-close" type="button" aria-label="Dismiss this message"> <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"></path></svg> </button> Incorrect username or password. </div></div>我需要一条错误消息。但我没有private By error = By.xpath("//*[@id='js-flash-container']/div/div/text()");
3 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
它更容易使用cssSelector
......
String error = driver.findElement(By.cssSelector("div .flash")).getText().trim(); System.out.println(error);
但是如果你想要 XPATH 使用:
String error = driver.findElement(By.xpath('//div[@class="container"]')).getText().trim(); System.out.println(error);
慕容森
TA贡献1853条经验 获得超18个赞
提取错误消息不正确的用户名或密码。在 github 登录页面上,https://github.com/login
您需要为引入WebDriverWaitvisibilityOfElementLocated()
,您可以使用以下任一定位器策略:
cssSelector
:System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div#js-flash-container div.container"))).getText());
xpath
:System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='js-flash-container']//div[@class='container']"))).getText());
回首忆惘然
TA贡献1847条经验 获得超11个赞
在 firefox 中,我找到了那个元素并发现 xpath 是:
/html/body/div[3]/main/div/form/div[2]/div/div
我加载了 firefox selenium 并通过 xpath 找到了这个元素:
WebElement error_msg = driver.findElement(By.xpath(ELEMENT_XPATH));
然后获取我使用的文本:
文本 error_msg_str = error_msg.getText();
然后您可以将此字符串与“不正确的用户名或密码”进行比较。,如果这些匹配,则会引发错误。
添加回答
举报
0/150
提交
取消