0

新しいウィンドウに切り替えた後、「urlContains」のみが機能しています。他NewWindowに切り替えた後に要素が表示されない

何も起こりません(どちらもクリックもelementVisibleか何か)ナイトウォッチの

部分コード:

'Order Module' : function(browser) { 
browser 
    .useXpath() 
    .waitForElementVisible("@OrderTab", 20000) 
    .pause(5000) 
    .click("@OrderTab") 
    .pause(5000) 
    .useCss() 
    .waitForElementVisible("input[title = 'New']", 20000) 
    .click("input[title = 'New']") 
    .useXpath() 
    .waitForElementVisible("@OrderTextBox']", 20000) 
    .verify.urlContains('https://invoiceit-s.na30.visual.force.com/apex/createJobStep1?retURL=%2Fa0K%2Fo&save_new=1&sfdc.override=1') 
    .setValue("@OrderTextBox", "Order Name") 
    .pause(10000) 
    .click("@LinkIconForNewWindow") 
    .pause(10000) 
    .window_handles(function(result) { 
     this.verify.equal(result.value.length, 2, '2 windows should be open') 
     var handle = result.value[1] 
     this.switchWindow(handle) 
     this.verify.urlContains('https://invoiceit-s.na30.visual.force.com/_ui/common/data/LookupPage?lkfm=j_id0%3AjobForm&lknm=j_id0%3AjobForm%3Apb%3Arender%3Aj_id38%3A0%3Aj_id39&lktp=001&lksrch=') 
     this.useXpath() 
     this.waitForElementVisible("@searchBox", 20000) 
    }) 
    .pause(20000) 
    .end() } 

答えて

0

は、私は、XPathに精通していないです、あなたは、要素ブロックのスクリーン印刷を投稿することができます?私はあなたを助けることができるかもしれない

PS:あまりにも多くのポーズ()を使用しないでください、それはあなたのテストプログラムを遅くするでしょう、夜間は500msごとに要素をチェックします。

編集1:問題は '@searchBox'という要素が原因である可能性があります。これはポップアップボタンをクリックした後のブラウザの最初のタブにありますか?はいの場合は、次のようになります。

.window_handles(function(result) { 
     var home = result.value[0], // your first tab 
      handle = result.value[1]; // second tab 
     this 
      .switchWindow(handle) 
      .verify.urlContains('https://invoiceit') 
      .useXpath() 
      .switchWindow(home) // you need to switch back to first tab , even you close the pop-up. 
      .waitForElementVisible("@searchBox", 20000) 
    }) 

PS:この投稿からの私の回答は役に立ちます。 Loop is not working properly - nightwatch

+0

xPathエラーではありません。それは 'waitForElementVisible(' body '、20000)'でも動作しません。ボディがすべてのDOMに存在するように。 switchWindowメソッドで何かを見逃しましたか? – Maharshi

+0

Xpathを使用するとコードを読みにくくすることができます。例えば、 ".//*[@id='01r36000000RX00_Tab']/a"を "#Tab"や "div [name = tab]" –

+0

コードをチェックしてください@Bao Tran – Maharshi

関連する問題