0
我正在嘗試在上下文中使用Selenium驅動程序與Firefox的Codeception測試中的xpath定位器。具體來說,我試圖點擊郵件正文中的第二個鏈接,並用roundcube查看。
電子郵件的主體是在div使用XPath //div[@class="rcmBody"]
我能得到這個路徑的鏈接:(//div[@class="rcmBody"]//a)[2]
但由於某些原因,當我嘗試//a[2]
身體div的範圍內,它會返回iframe中的所有a
元素。
從codeception一個例子:
$I->click('//a[2]', '//div[@class="rcmBody"]')
這將導致網絡驅動程序點擊其中來自身體的div開始前的iframe的第二個鏈接(選擇正確的iframe後)。
我可以直接在Chrome中還測試:
$x('//a', $x('//div[@class="rcmBody"]')[0])
這將返回iframe中所有a
元素的列表,而不是範圍內。
我怎樣才能讓上下文部分工作?
太棒了! - 似乎在上下文中工作 - 但現在我有問題,它不是在最終結果集上篩選[2]。它看起來像結果是// div [@ class =「rcmBody」] // a [2]而不是(// div [@ class =「rcmBody」] // a)[2]。這是正常的嗎?有沒有辦法解決這個問題? – DAB
Scratch - 我發現它的工作原理是這樣的: $ I-> click('(.// a)[2]','// div [@ class =「rcmBody」]') – DAB
@DAB awesome,感謝分享! – alecxe