我在MStest下运行WebDriver(2.35.0.0),我无法使用element.Click()方法。 [我可以点击普通的超链接和asp:按钮等没问题] - Firefox 23.0.1
Click()方法不会引发异常,但标记中指定的回发不会发生[显然这在浏览器中手动测试时工作正常];
loginlinkButton的类型为asp:linkButton。
我已经确认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();
答案 0 :(得分:0)
如果它没有抛出异常,你可能会选择一个父元素。例如
<div id="login">
<span>login</span>
</div>
过去遇到过这个问题,我选择了跨度并且有效。换句话说,如果没有抛出异常,你可能选择了错误的元素。
答案 1 :(得分:0)
我找到了解决办法:
element.SendKeys(Keys.Enter);
我很确定这是WebDriver中的一个错误,虽然ASP .Net Web Forms在href中用javascript做的事情很糟糕,但这是浏览器广泛支持的东西,所以它应该通过WebDriver工作