2013-10-02 174 views
0

我在MStest下运行WebDriver(2.35.0.0),我无法获得element.Click()方法的工作。 [我可以点击正常的超链接和asp:按钮等。没问题] - 火狐23.0.1WebDriver Click not working on asp .Net LinkBut​​ton

Click()方法不会引发异常,但标记中指定的回发不会发生[显然这在浏览器中手动测试时工作正常];

loginlinkBut​​ton的类型为asp:linkBut​​ton。

我已验证FindElement正在返回正确的元素。

driver = new FirefoxDriver(profile); 
IWebElement loginlinkButton = driver.FindElement(By.Id("login")); //.Click(); 

//Tried this 
loginlinkButton.Click(); 
//Tried this too 
new Actions(driver).MoveToElement(loginlinkButton).Click().Perform(); 

所呈现的标记是:

<a id="login" class="tid-login" href="javascript:__doPostBack('login','')">Login</a> 

我检查有没有重复的ID在页面以及试图改变元素的名称。

我也曾尝试选择由CSS元素以及:

driver.FindElement(By.LinkText("Login")).Click(); 
+3

帮我们一个忙。而不是给我们预渲染的代码..给我们提供的HTML代码。 (当你在浏览器上点击查看源时显示的内容) – sircapsalot

+0

@RobD问题可能是因为可能有一个隐藏的元素具有相同的ID。只是一个猜测。确保它不是这个问题。 – Vinay

+1

不工作意味着什么? – Arran

回答

0

我发现了一个变通办法:

element.SendKeys(Keys.Enter); 

我敢肯定,这是webdriver的一个bug,虽然什么的ASP.NET Web窗体与在href JavaScript并味道不好,它是什么这是浏览器广泛支持,所以它应该通过WebDriver工作

0

,如果它不抛出一个异常,可能是你选择一个父元素。例如

<div id="login"> 
    <span>login</span> 
</div> 

在过去有这个问题,我选择了跨度,它的工作。换句话说,如果没有抛出异常,你可能会选择错误的元素。