0

我在 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();
4

2 回答 2

0

如果它没有引发异常,则可能您选择了父元素。例如

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

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

于 2013-10-02T23:57:58.263 回答
0

我找到了解决方法:

element.SendKeys(Keys.Enter);

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

于 2013-10-03T13:39:24.570 回答