2016-09-04 81 views
1

FakeAnchor類不能點擊自定義鏈接時,DIV +鏈接一起使用硒網絡驅動程序無法點擊自定義鏈接時一起DIV +鏈接使用硒網絡驅動程序

FakeAnchor類在我的Ajax應用程序,我們有下拉+鏈接(自定義)在div中,我想點擊自定義鏈接。我有定位器,哪些工作正常與舊硒自定義鏈接,但它不與最新的網絡驅動程序。任何人都可以請指出我的問題或建議的東西,使其工作?

預計:

點擊自定義鏈接應該打開尊敬的選項(它實際上打開對話框)。

實際:

下面定位到點擊下拉按鈕,而不是定製鏈接由於這種不具有實際的href或錨標記一個複雜的頁面的DOM。

定位:

css=div[id$='_repeatDesc'][class='FakeAnchor'] 

HTML:

<div id="zcs1_repeatDesc" class="FakeAnchor" style="cursor: pointer;">Customize</div> 

代碼:

webDriver().findElement(By.cssSelector("div[id$='_repeatDesc'][class='FakeAnchor']")).click(); 

UI element and DOM

回答

1

餘噸眨眼你的定位器不是唯一的,可能是定位下拉元素,這就是爲什麼它點擊下拉按鈕,而不是自定義鏈接。

你應該嘗試使用By.xpath()text()節點定位爲低於這個元素: -

webDriver().findElement(By.xpath(".//div[text() = 'Customize']")).click(); 

或作爲我看到在HTML元素有id屬性,如果它是唯一我倒是找到慾望元素並且它沒有被動態地改變,你可以嘗試也如下使用By.id(): -

webDriver().findElement(By.id("zcs1_repeatDesc")).click(); 

編輯: - 如果你想使用點擊JavascriptExecutor請嘗試以下方法: -

((JavascriptExecutor)driver).executeScript("arguments[0].click()", webDriver().findElement(By.xpath(".//div[text() = 'Customize']"))); 
+0

謝謝Saurabh!我接受這一點很有幫助,但很抱歉地說,這是行不通的。有沒有什麼辦法使用Javascript執行者點擊自定義鏈接? –

+0

@Jits Ok請參閱編輯答案以使用'JavascriptExecutor'執行點擊。試試看,並讓我知道 –

+1

JavascriptExecutor工作,請接受問題。再次感謝! –