selenium web驱动程序元素单击无法在Windows 10中工作

时间:2016-08-02 11:57:03

标签: c# selenium windows-10

我正在使用selenium webdriver在C#中创建自动化工具。自动化工作精细的Windows 7,但没有工作的窗口10。

离。

driver.FindElement(By.XPath("//button[@type='submit']")).Click();

点击不工作。

错误消息

threw an exception of type 'OpenQA.Selenium.WebDriverException'
    base: {"The HTTP request to the remote WebDriver server for URL http://localhost:7057/hub/session/c335c107-a5ba-48a1-8858-58de998c62dc/element/%7B0678bf84-d09c-43d4-a4cf-ea35f73168a8%7D/click timed out after 60 seconds."}.

3 个答案:

答案 0 :(得分:1)

试试这个:

而不是.Click();*使用.SendKeys(Keys.Return);

driver.FindElement(By.XPath("//button[@type='submit']")).SendKeys(Keys.Return);

答案 1 :(得分:0)

当FireFox更新到47.0.1版本时,我遇到同样的错误,因为没有其他库或WebDriver更新,WebDriver与该版本不兼容。尝试更新Selenium,新版3.0.0测试版更新于2016-08-04 http://www.seleniumhq.org/download/

发布

答案 2 :(得分:0)

更新浏览器和驱动程序,确保浏览器和驱动程序版本匹配-无法在浏览器版本70上使用驱动程序版本80,这就是为什么获得TimeoutException

话虽这么说

有很多原因导致点击无法正常工作,其中一些原因:

  1. 元素很难处理。
  2. 其他元素将获得点击。
  3. 对于某些驱动程序实现,某些情况下会出现错误。
  4. 稀有-没有明显的原因。

首先,尝试明显的操作(提交,不要单击)

driver.FindElement(By.XPath("//button[@type='submit']")).Submit();

如果上述方法无效,请继续此处。

为了绕过所有Click()逻辑,请使用JavaScript进行原始点击。

var element = driver.FindElement(By.XPath("//button[@type='submit']"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click();", element);

作为扩展方法

public static void JavaScriptClick(this IWebElement element)
{
    // get the driver
    var driver = (IJavaScriptExecutor)((IWrapsDriver)element).WrappedDriver;

    // execute the click
    driver.ExecuteScript("arguments[0].click();", element);
}

// usage
driver.FindElement(By.XPath("//button[@type='submit']")).JavaScriptClick();

资源

您可以检查Selenium Extensions(开源)以获取更多示例 在文件夹/src/csharp/Gravity.Core/Gravity.Core/Extensions

https://github.com/gravity-api/gravity-core

https://www.nuget.org/packages/Gravity.Core

如果您使用C#,则可以安装该软件包并直接使用其扩展名。

https://www.nuget.org/packages/Gravity.Core/

Install-Package Gravity.Core