为了账号安全,请及时绑定邮箱和手机立即绑定

如何在github登录页面上提取错误消息“不正确的用户名或密码”

如何在github登录页面上提取错误消息“不正确的用户名或密码”

蓝山帝景 2023-06-04 14:56:23
我正在尝试为 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);


查看完整回答
反对 回复 2023-06-04
?
慕容森

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());



查看完整回答
反对 回复 2023-06-04
?
回首忆惘然

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();

然后您可以将此字符串与“不正确的用户名或密码”进行比较。,如果这些匹配,则会引发错误。


查看完整回答
反对 回复 2023-06-04
  • 3 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信