2017-03-04 43 views
0

我有一個問題,以識別出現在列表框中的動態生成(使用JQuery或一些腳本)元素。我想選擇一個我動態通過的特定市場價值。 到目前爲止我所使用的代碼是使用nightwatch.js我如何選擇動態生成的項目與動態提供的值

browser.useXpath().waitForElementVisible('.//*[@id="NIRPaymentReasonDropDown_1"]', 1000) 

browser.useXpath().click('//*[@id="NIRPaymentReasonDropDown_1"]/span[1]/span/span[1]') .click('//*[@id="NIRPaymentReason_1_listbox"]/li[text()="' + pageValues.market + '"]')

enter image description here

這裏pageValues.market是一個動態提供的值。

Inshort,我想知道如何使用動態提供的值在動態生成的列表框項目上生成點擊事件。使用nightwatch.js

好心幫我解決這個問題

+0

你有沒有看過http://nightwatchjs.org/api/switchWindow.html? – derp

+0

感謝@derp真的成功了:) –

回答

2

幾個試錯後,我succeded與此解決方案來處理相同的網頁

browser.windowHandles(function(result) { 
          var authorizePopup = result.value[1]; 
          this.waitForElementVisible('#confirmation-modal', 2000) 
          this.switchWindow(authorizePopup); 
          this.assert.containsText(".modal-title", "Payment Details"); 
          this.click('#confirm-checkbox') 
           .click('#submit-payment-btn') 
         }) 

我的新打開的標籤想要一個更好的方式來存儲被檢查的元素在頁面對象中爲這個新創建的標籤..可以給我任何建議或意見

+0

不錯,如果你使用的是頁面對象,我會建議把諸如'#confirmation-modal','.modal-title'等選擇器放入元素部分。通過這種方式,您可以爲它們命名一些有意義的元素,例如'元素:{paymentDetailTitle':'.modal-title' }' '命令:[{'confirmPayment':function(){ this.assert.containsText('@ paymentDetailTitle','Payement Details'); }]' – derp

+0

呵呵?你沒有得到它的工作?我只是建議使用基於http://nightwatchjs.org/guide#page-objects的頁面對象 – derp

相關問題