2017-05-14 78 views
0

我有一個複選框上,與包括鏈接的文本如下:Nightwatch.js點擊嵌套錨泊時告知要點擊複選框標籤

<div id="agreementDiv" class="cust-pad-bot1"> 
 
    <input id="inputAgreement" type="checkbox"> 
 
    <label for="inputAgreement">I have read and agree to the <a target="_blank" href="http://example.com/terms-and-conditions"><u>Terms &amp; Conditions</u></a></label> 
 
</div>

(請注意,這個片段只是實際實現的草圖,CSS類被刪除)

使用Nightwatch.js我想自動檢查複選框。在我的用戶界面中,點擊標籤文本隨後會檢查複選框。

browser 
.useXpath() 
.waitForElementPresent(`//*[@id="agreementDiv"]/label`, 10000) 
.click(`//*[@id="agreementDiv"]/label`) 

但是,當我嘗試使用Nightwatch做它時,它會點擊鏈接並在新選項卡中打開鏈接。但是複選框沒有被點擊。使用css/xpath直接點擊複選框也不起作用。我很感激,如果有人能夠解釋如何防止點擊兒童錨的夜服。

謝謝。

回答

0

你已經編寫了代碼點擊標籤不復選框。更改xpath。但在使用xpath選擇器之前使用方法browser.useXpath();

browser 
.waitForElementPresent(`//*[@id="agreementDiv"]/input`, 10000) 
.click(`//*[@id="agreementDiv"]/input`) 

通過使用CSS選擇器(在nightwatch默認選擇):

browser 
.waitForElementPresent(`#agreementDiv>input`, 10000) 
.click(`#agreementDiv>input`) 

這應該解決您的問題。如果你點擊複選框,複選框將被選中。

+1

否。點擊複選框使用'click'沒有檢查它。我已經在前面的步驟中使用了'useXpath',這裏我沒有包括這個。最終,我在https://github.com/maxgalbu/nightwatch-custom-commands-assertions提供的複選框中找到了'jqueryClick'函數,它工作正常。會提出一個答案。 – Deepal

+1

好的。大多數開發人員都面臨這個問題,他們最終使用jQuery。在處理一個測試用例時,我也面臨同樣的問題,但在我的情況下,複選框被禁用。因此我無法檢查它 –