如何检查 <body> 中是否存在元素?
How to check if an element exists inside the <body>?
我需要验证元素是否存在。我用过 toBeTruthy() 并且效果很好。我想看看它是否真的在检查元素,所以我使用 toBeFalsy() 来查看它是否未通过测试。它没有。因为这个元素是在<style>
里面的<head>
。如何验证它是否在 <body>
中可见?
像这样缩小搜索范围应该很容易,具体取决于您使用的定位器。
使用CSS:element(by.css('body original_locator'))
使用 Xpath:(by.xpath('//body//original_locator'))
或者,如果您正在使用其他定位器策略之一,例如 className,您可以链接元素:element(by.css('body')).element(by.className('orginal_locator))'
这两种方法都声明您只需要 body
的后代元素
如果你想检查元素是否存在,你应该使用
expect(
await element(by.css('your locator')).isPresent()
).toBe(true)
如果您想确保它不仅存在而且可见,请使用
expect(
await element(by.css('your locator')).isDisplayed()
).toBe(true)
如果您的问题在于定位元素,请使用其中一个
CSS: body > yourElement
, >
在这种情况下表示 body
的直接 child
XPath://body/yourElement
。如果您在 body
之后使用 /
而不是 //
,这表明您正在寻找正文元素
的直接 child
我需要验证元素是否存在。我用过 toBeTruthy() 并且效果很好。我想看看它是否真的在检查元素,所以我使用 toBeFalsy() 来查看它是否未通过测试。它没有。因为这个元素是在<style>
里面的<head>
。如何验证它是否在 <body>
中可见?
像这样缩小搜索范围应该很容易,具体取决于您使用的定位器。
使用CSS:element(by.css('body original_locator'))
使用 Xpath:(by.xpath('//body//original_locator'))
或者,如果您正在使用其他定位器策略之一,例如 className,您可以链接元素:element(by.css('body')).element(by.className('orginal_locator))'
这两种方法都声明您只需要 body
如果你想检查元素是否存在,你应该使用
expect(
await element(by.css('your locator')).isPresent()
).toBe(true)
如果您想确保它不仅存在而且可见,请使用
expect(
await element(by.css('your locator')).isDisplayed()
).toBe(true)
如果您的问题在于定位元素,请使用其中一个
CSS: body > yourElement
, >
在这种情况下表示 body
XPath://body/yourElement
。如果您在 body
之后使用 /
而不是 //
,这表明您正在寻找正文元素