qa_*_*enq 6 webdriver verify multiline
我有一个包含以下内容的html页面:
<center>
This is Login page.
<br>
Please click below link to Login.
<br>
<a href="xxx">Login</a>
</center>
Run Code Online (Sandbox Code Playgroud)
如何使用一个webdriver命令验证上面的所有静态文本?
我试过这些,但没有一个工作:(
driver.findElement(By.xpath("//*[contains(.,'This is Login page.<br>Please click below link to Login')]"))
driver.findElement(By.xpath("//*[contains(.,'This is Login page.\nPlease click below link to Login')]"))
Run Code Online (Sandbox Code Playgroud)
谁知道怎么做?
你可以做:
webDriver.findElement(By.id("<ID of center tag>")).getText().contains("This is Login page.Please click below link to Login.Login");
Run Code Online (Sandbox Code Playgroud)
随意使用您选择的定位器而不是By.id.
基本上任何WebElement的getText()都返回节点的文本内容,去掉所有HTML标签和注释.
这更多是 XPath 的限制,而不是 Selenium 的限制。
我不明白为什么你在那里使用全局 XPath 选择器,更好的 XPath 选择器是:
By.XPath("//center");
Run Code Online (Sandbox Code Playgroud)
如果它是页面上唯一的“中心”标签,甚至:
By.XPath("//center[contains(text(), '这是登录页面'")
如果您通过代码执行而不是盲目地在 XPath 中搜索,那么 /r 和 /n 字符将被保留。
| 归档时间: |
|
| 查看次数: |
19246 次 |
| 最近记录: |