WebDriver单击不在asp .Net LinkBut​​ton上工作

时间:2013-10-02 20:34:19

标签: c# asp.net selenium webdriver

我在MStest下运行WebDriver(2.35.0.0),我无法使用element.Click()方法。 [我可以点击普通的超链接和asp:按钮等没问题] - Firefox 23.0.1

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();

2 个答案:

答案 0 :(得分:0)

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

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

过去遇到过这个问题,我选择了跨度并且有效。换句话说,如果没有抛出异常,你可能选择了错误的元素。

答案 1 :(得分:0)

我找到了解决办法:

element.SendKeys(Keys.Enter);

我很确定这是WebDriver中的一个错误,虽然ASP .Net Web Forms在href中用javascript做的事情很糟糕,但这是浏览器广泛支持的东西,所以它应该通过WebDriver工作