java 如何从吐司消息中获取几秒钟内消失的文本

g6ll5ycj  于 2023-02-11  发布在  Java
关注(0)|答案(4)|浏览(105)

有一个功能,当我输入无效的登录凭据时,页面右侧会出现一条错误消息,显示错误消息“请输入有效的用户名和密码”,但它只出现几秒钟(我们称之为吐司消息)。我必须通过java在 selenium 中验证该错误文本消息。请建议我如何实现这一点。提前感谢

jvlzgdj9

jvlzgdj91#

您需要打开页面的源代码(F12)并找到这个“吐司”元素-它应该是一些<div>,您可以使用selenium选择idclass。我不知道这个toast是如何实现的,但我非常肯定它不会在每次显示消息时重新创建-所以您可以依赖您的选择器。
然后,您可以在java中使用driver.findElement(By.id("toast_id"))driver.findElement(By.className("toast-class-name"))并检查其文本值

ffscu2ro

ffscu2ro2#

不要使用text(),尝试

elem.getAttribute("innerHTML");
ffvjumwh

ffvjumwh3#

这应该行得通:

String loginStatus = new WebDriverWait(webDriver, 10).until(ExpectedConditions.elementToBeClickable(By.id("toast-message"))).getText();
    if (loginStatus.contains("enter valid")) {
        System.out.println("Login Failed: " + loginStatus);
    } else {
        System.out.println("Login Success:" + loginStatus);
    }
8wigbo56

8wigbo564#

从 selenium 导入webdriver

driver = webdriver.Firefox(executable_path ='C:\\....\gekodriver')
driver.get("http://www.example.org")
toast_text = driver.find_element_by_xpath("Copy the xpath of toast and paste here...")
assert toast_text =="Text which is shown in toast paste here"
print("Test case passed")

相关问题