2013-04-18 86 views
4

我不能點擊文字鏈接 '添加' 使用的Watir如何使用watir點擊具有特定文本的鏈接元素?

PAGE:

<div id="divAdd" style="float: right"> 
    <a onclick="SwitchView('2')" style="color: #1B56A7; cursor: pointer;">Add</a> 
</div> 

的Watir CODE:

browser.link(:text =>"Add").click 

例外:

Unable to locate element, using {:tag_name=>["a"], :text=>"Add"} 

請幫我解決這個問題?

+1

沒有頁面,很難確定它爲什麼會發生。我的猜測是要麼沒有完成加載到頁面中的元素,要麼在框架中。我總結了我知道的幾個問題以及如何在我的[博客](http://jkotests.wordpress.com/unable-to-locate-element/) –

回答

10

如果頁面中有很多ajax和javascript正在進行,您可能只需等待一小段時間以便客戶端代碼在從瀏覽器加載頁面後完成呈現。

試試這個

browser.link(:text =>"Add").when_present.click 

如果不工作,然後確保項目不在框架或東西..

順便說一句,如果在頁面上的多個鏈接與文本'添加',那麼你可能必須指定一個容器外的容器,讓你確定你想要的鏈接。例如。

browser.div(id: => "divAdd").link.when_present.click 

如果

+0

上解決這些問題,我不得不添加'require'watir-webdriver/locators''。沒有它我有一個錯誤'NameError:未初始化的常量Watir :: Locators' –

+1

這似乎很奇怪,你用什麼版本的Watir? (可能是與最新版本相關的東西,我從來沒有需要添加該要求) –

+0

正確的,原因是在watir版本。我不知道爲什麼,但從頭開始的安裝給了我舊版本。 –

1

這將是我做這件事的方式。

while browser.div(:class, 'containerDIV').a(:text, 'Add').exists? do 
    browser.div(:class, 'containerDIV').a(:text, 'Add').click 
end 
相關問題