2012-10-27 38 views
0

我一直在嘗試使用webdriver在Chrome上點擊某個特定元素。奇怪的是,webdriver能夠識別該特定元素的所有屬性。但是當我說Element.Click();它只是通過沒有點擊該鏈接。Webdriver無法點擊Chrome上的特定鏈接

我已經從字面上使用Webdriver提供的所有內容,通過ID,按類,按CSS,按XPath。還沒有什麼

我真的很感激,如果有人會幫我在這一個。

@Prashant - 對不起。這個網絡應用程序正在開發,我不認爲我可以與你分享鏈接。

@Dominik - 這是我如何定義元素變量

var element = driver.FindElement(By.Id("h4GetStarted")); 
if(element.Contains("let's start") 
    element.click(); 

以下是相同的HTML代碼:

<div style="margin: 44px 0px 8px 4px; cursor: pointer;" class="divRow" id="h4GetStarted"> 
    <h4>let's start</h4> 
    <div class="sprite-arrow-right"></div> 
</div> 

我想點擊它說的文本let's start

+0

你能分享該鏈接的HTML嗎? –

+0

如何定義「元素」以及您的網頁的HTML代碼是什麼? – dokaspar

回答

0

您可以確認它在您駕駛瀏覽器(不是WebDriver)時如預期的那樣工作嗎?

這可能對您的情況沒有幫助(可能會幫助其他人出於同樣的原因,但我也遇到了類似的問題),但是我遇到了類似的問題,使用FirefoxDriver而不是ChromeDriver (我正在使用Java)。事實證明,ChromeDriver點擊了元素的中間,我的複選框不可點擊。

ChromeDriver troubleshooting page有關於解決描述此行爲的Element is not clickable錯誤的一些有用信息。

我最終通過使用Advanced user interactions API解決了這個問題,它提供了將鼠標移動到具有偏移量的元素的能力。有趣的是,我實際上並不需要指定偏移量,因爲moveToElement()方法必須選擇元素的左上角(我還沒有確認過)。

所以不是

termsCheckbox.click(); 

我用

new Actions(driver).moveToElement(termsCheckbox).click().perform(); 
0

添加到您的驅動器

driver.manage()窗口()最大()。

我剛剛有一個問題鉻沒有找到元素和點擊由於瀏覽器不是全尺寸,並拋出元素。