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



我正在尝试获取 github 登录页面上错误消息的 XPATH。https://github.com/login(。 但是我无法在铬中获得此元素的 XPATH

我输入了不正确的凭据,并看到"用户名或密码不正确" 然后:

  1. 我试图通过 chrome$x("//*[@id='js-flash-container']/div/div/text()")复制 XPATH,但它返回了 (2( [文本,文本]
  2. $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()");

使用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);

提取错误消息用户名或密码不正确。在 GitHub 登录页面上https://github.com/login您需要诱导WebDriverWait等待visibilityOfElementLocated(),您可以使用以下任一定位器策略:

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

在 Firefox 中,我找到了该元素,并发现 xpath 是:

/html/body/div[3]/main/div/form/div[2]/div/div

我加载了火狐硒,并通过xpath找到了这个元素:

WebElement error_msg = driver.findElement(By.xpath( ELEMENT_XPATH ((;

然后要获取我使用的文本:

Texterror_msg_str = error_msg.getText((;

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

最新更新