量角器:我怎样才能得到下一个标签
Protractor: How can I get the next tag
是否可以在另一个元素之后获取一个元素? (不是子元素)
HTML代码:
<input id="first-input" type="text"/>
<ul>
<li>1</li>
<li>2</li>
</ul>
<input id="second-input" type="text"/>
<ul>
<li>1</li>
<li>2</li>
</ul>
<input id="third-input" type="text"/>
<ul>
<li>1</li>
<li>2</li>
</ul>
如何获得 element(by.id('second-input'))
之后的 ul
?
这是我的理解:
element(by.id('second-input')).element(by.tagName('ul')) // This doesn't work because this looks for sub-elements in <input id="second-input">
element.all(by.tagName('ul')).first() // This doesn't work because it gets the 'ul' following <input id="first-input">
element(by.id('second-input')).element.all(by.tagName('ul')) // This doesn't work because this looks for all 'ul' elements as sub-elements of <input id="second-input">
就我而言,这些“ul”没有唯一 ID 或任何唯一信息。
您可以使用 by.xpath()
并请求 以下 ul
兄弟姐妹 :
element(by.id('second-input')).element(by.xpath('following-sibling::ul'));
或者,一次性:
element(by.xpath('//input[@id="second-input"]/following-sibling::ul'));
另一种选择是使用 by.css()
with an adjacent sibling selector:
element(by.css('#second-input + ul'));
使用 Xpath 选择器不是更好的选择,因为它会减慢元素查找机制。
使用protractor-css-booster插件会非常简单。此插件将帮助您找到具有 css 选择器的兄弟元素。
使用
下载插件
npm install --save protractor-css-booster
在配置文件中添加插件:
exports.config = {
// ... the rest of your config
plugins: [
{
// The module name
package: "protractor-css-booster"
}
]
};
现在,您可以像这样找到您的元素:
const ulElem=element(by.css('#second-input')).element(by.followingSibling('ul')); \ returns the first div
是否可以在另一个元素之后获取一个元素? (不是子元素)
HTML代码:
<input id="first-input" type="text"/>
<ul>
<li>1</li>
<li>2</li>
</ul>
<input id="second-input" type="text"/>
<ul>
<li>1</li>
<li>2</li>
</ul>
<input id="third-input" type="text"/>
<ul>
<li>1</li>
<li>2</li>
</ul>
如何获得 element(by.id('second-input'))
之后的 ul
?
这是我的理解:
element(by.id('second-input')).element(by.tagName('ul')) // This doesn't work because this looks for sub-elements in <input id="second-input">
element.all(by.tagName('ul')).first() // This doesn't work because it gets the 'ul' following <input id="first-input">
element(by.id('second-input')).element.all(by.tagName('ul')) // This doesn't work because this looks for all 'ul' elements as sub-elements of <input id="second-input">
就我而言,这些“ul”没有唯一 ID 或任何唯一信息。
您可以使用 by.xpath()
并请求 以下 ul
兄弟姐妹 :
element(by.id('second-input')).element(by.xpath('following-sibling::ul'));
或者,一次性:
element(by.xpath('//input[@id="second-input"]/following-sibling::ul'));
另一种选择是使用 by.css()
with an adjacent sibling selector:
element(by.css('#second-input + ul'));
使用 Xpath 选择器不是更好的选择,因为它会减慢元素查找机制。
使用protractor-css-booster插件会非常简单。此插件将帮助您找到具有 css 选择器的兄弟元素。
使用
下载插件npm install --save protractor-css-booster
在配置文件中添加插件:
exports.config = {
// ... the rest of your config
plugins: [
{
// The module name
package: "protractor-css-booster"
}
]
};
现在,您可以像这样找到您的元素:
const ulElem=element(by.css('#second-input')).element(by.followingSibling('ul')); \ returns the first div