我试图点击标准的HTML按钮。驱动程序正确定位元素,Click()
方法毫无例外地完成,但是没有在浏览器上调用点击。
以下示例只会打开Google主页并点击(或无法点击) I feel lucky 按钮。
private static readonly InternetExplorerOptions INTERNET_EXPLORER_OPTIONS = new InternetExplorerOptions
{
IgnoreZoomLevel = true
};
[Test]
public void Clicking()
{
using (var driver = new InternetExplorerDriver(INTERNET_EXPLORER_OPTIONS))
{
driver.Navigate().GoToUrl("http://www.google.com");
driver.FindElement(By.Name("btnI")).Click();
Assert.That(driver.Url, Is.EqualTo("https://www.google.com/doodles"));
}
}
我使用的是32位版本的IEDriverServer.exe
。
我正在使用IE版11.576.14393.0
。
更新版本:11.0.38
。
其他解决方案具有相同(非)影响,但是,我发现了一个有用的wait
条件ElementToBeClickable
。
答案 0 :(得分:0)
添加ExpectedConditions.ElementToBeClickable
等待条件解决了问题。
[Test]
public void Clicking()
{
using (var driver = new InternetExplorerDriver())
{
driver.Navigate().GoToUrl("http://www.google.com");
var button = driver.FindElement(By.Name("btnI"));
Assert.That(button.TagName, Is.EqualTo("input"));
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementToBeClickable(button));
button.Click();
wait.Until(webDriver => webDriver.Url == "https://www.google.com/doodles"); // <== wait until condition here
Assert.That(driver.Url, Is.EqualTo("https://www.google.com/doodles"));
}
}