Nightwatch - 如何 CSS select 嵌套按钮本身没有唯一标识符
Nightwatch - How can I CSS select a nested button with no unique identifiers on the button itself
在图片中 'UI' 我需要 select 页面上的第二个 'Setup' 按钮。
我尝试了很多不同的组合来尝试 select 这个元素,但没有成功。我看过一些相关的帖子,但大多数都在谈论拥有 1 个父元素和 1 个或 2 个子元素。在这种情况下,我需要沿着这条路走:li2/div2/div/a。我只是不确定如何将它们串在一起。
不幸的是,Xpath 不是一个选项,因为 id 会随着会话的不同而变化。
UI
Inspecting the DOM
对于其他上下文,ul(Google 身份验证和语音身份验证)中的其他选项与 SMS li 相同。
理想情况下,我想做这样的事情,但我觉得我离得太远了:
selector: 'li[data-se$="SMS"] + a[class$="button link-button"]'
为什么不通过数据属性select?
如果您需要“点击”按钮,您需要决定何时发生。例如,您可以在页面加载时执行此操作:
const sms = document.querySelector("[data-se='SMS']");
const simulated_button_click = sms.getElementsByClassName('link-button')[0];
<body onload="simulated_button_click.click()">
...
<div class="enroll-factor-list">
<ul class="list-content">
<li data-se="GOOGLE_AUTH" class="enroll-factor-row clearfix">
<div class="enroll-factor-icon-container">
<div class="enroll-factor-button">
<a class="button link-button" href="#">Setup</a>
</div>
</div>
</li>
<li data-se="SMS" class="enroll-factor-row clearfix">
<div class="enroll-factor-icon-container">
<div class="enroll-factor-button">
<a class="button link-button" href="#">Setup</a>
</div>
</div>
</li>
</ul>
</div>
...
</body>
我能够 select 使用后代组合器的按钮。
https://www.w3.org/TR/selectors-3/#descendant-combinators
selector: 'li[data-se="SMS"] * a[data-se$="button"]'
在图片中 'UI' 我需要 select 页面上的第二个 'Setup' 按钮。
我尝试了很多不同的组合来尝试 select 这个元素,但没有成功。我看过一些相关的帖子,但大多数都在谈论拥有 1 个父元素和 1 个或 2 个子元素。在这种情况下,我需要沿着这条路走:li2/div2/div/a。我只是不确定如何将它们串在一起。
不幸的是,Xpath 不是一个选项,因为 id 会随着会话的不同而变化。
UI
Inspecting the DOM
对于其他上下文,ul(Google 身份验证和语音身份验证)中的其他选项与 SMS li 相同。
理想情况下,我想做这样的事情,但我觉得我离得太远了:
selector: 'li[data-se$="SMS"] + a[class$="button link-button"]'
为什么不通过数据属性select?
如果您需要“点击”按钮,您需要决定何时发生。例如,您可以在页面加载时执行此操作:
const sms = document.querySelector("[data-se='SMS']");
const simulated_button_click = sms.getElementsByClassName('link-button')[0];
<body onload="simulated_button_click.click()">
...
<div class="enroll-factor-list">
<ul class="list-content">
<li data-se="GOOGLE_AUTH" class="enroll-factor-row clearfix">
<div class="enroll-factor-icon-container">
<div class="enroll-factor-button">
<a class="button link-button" href="#">Setup</a>
</div>
</div>
</li>
<li data-se="SMS" class="enroll-factor-row clearfix">
<div class="enroll-factor-icon-container">
<div class="enroll-factor-button">
<a class="button link-button" href="#">Setup</a>
</div>
</div>
</li>
</ul>
</div>
...
</body>
我能够 select 使用后代组合器的按钮。
https://www.w3.org/TR/selectors-3/#descendant-combinators
selector: 'li[data-se="SMS"] * a[data-se$="button"]'