我正在使用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."}.
答案 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
话虽这么说
有很多原因导致点击无法正常工作,其中一些原因:
首先,尝试明显的操作(提交,不要单击)
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