使用selenium Webdriver脚本登录后无法验证文本

使用selenium Webdriver脚本登录后无法验证文本,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我正在尝试使用TestNG框架通过seleniumwebdriver自动实现登录功能。我想在登录后验证文本,如Hi[username@gmail.com] 这是链接在页面上出现的顺序: TrackOrder | Notification | Singnup | Login 我的做法: 我点击登录(登录窗口出现)并登录。登录后 页面上链接的显示顺序为: TrackOrder | Notification | Hi[username@gmail.com] 用于在登录后验证文本: 我正在提取web

我正在尝试使用
TestNG
框架通过
seleniumwebdriver
自动实现登录功能。我想在登录后验证文本,如
Hi[username@gmail.com]

这是链接在页面上出现的顺序:

TrackOrder | Notification | Singnup | Login
我的做法:
我点击登录(登录窗口出现)并登录。登录后 页面上链接的显示顺序为:

TrackOrder | Notification | Hi[username@gmail.com]
用于在登录后验证文本: 我正在提取web元素
Hi的
xPath
[username@gmail.com]
并使用
getText()
方法验证实际值和预期值

实际问题:

我一运行脚本,它就成功登录,但当我提取web元素的文本时,它正在打印
注册
。虽然登录成功,但为什么会显示“singup”

尝试使用Web元素的绝对Xpath。

打印注册的原因可能是您提供的Xpath没有明确标识username元素,只是在Notification元素旁边提供元素,或者注册元素文本在登录后更改为username文本

所以,最好为元素创建唯一的XPath,并在使用getText()方法之前等待一段时间


如果元素的文本在登录时发生更改,则可以使用Thread.sleep(),因为selenium将在文本值更改之前执行该方法。

如何在脚本中获取username元素?你能提供你尝试过的代码吗?我正在使用DataProvider从excel工作表中读取用户名,原因是Selenium是异步的。它将所有请求排队,然后在决定时进行处理。您可以控制这一点的唯一方法是等待selenium的回调,该回调表示您刚才排队的“GetText”现在已经完成,下面是值。该值在回调参数中发送给您。请与我们共享您的代码。是否存在不可见元素?