我在C#中使用selenium webDrive进行自动化工具创建。即自动化工作精细窗口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."}.
更新浏览器和驱动程序,确保浏览器和驱动程序版本匹配-不能在浏览器版本70上使用驱动程序版本80,这就是为什么会出现TimeoutException
话虽如此,
点击可能不起作用的原因有很多,其中一些:
首先,尝试显而易见的方法(提交,而不是单击)
driver.FindElement(By.XPath("//button[@type='submit']")).Submit();
如果上面的都不行,这里继续。
为了绕过所有的点击()
逻辑,使用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。地心引力。核心/扩展
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
当FireFox更新到47.0.1版本时,我得到了同样的错误,因为如果没有额外的库或WebDriver更新,WebDriver与该版本不兼容。尝试更新Selenium,新的3.0.0 beta更新于2016-08-04http://www.seleniumhq.org/download/
试试这个:
而不是。单击()*
使用
。SendKeys(key.Return)
driver.FindElement(By.XPath("//button[@type='submit']")).SendKeys(Keys.Return);
我正试图使用chrome Driver从greytip web portal下载PDF格式的工资单。我正试图使用“driver.findelement(by.linktext(”salary“)).click();”点击链接工资。但我无法点击链接,并失败,但有以下例外。 WebDriverException:在点(198,139)不能单击元素。其他元素将收到click:...(警告:服务器没有提供
WebDriverException:元素在点(36,72)处不可单击。其他元素将收到click:...命令持续时间或超时:393毫秒 如果我使用,我不会收到任何警告。
当我试图将元素放入元素中时,我面临一个问题。我尝试了两种方法来实现这一点,但不幸的是没有成功。 上面的代码获取所有DOM元素列表。 方法1: 当我尝试这个方法时,它总是返回第一个元素的文本,而不是相应的元素文本。 在搜索时,我发现了一个链接,有人问了和我一样的问题。 Selenium Webdriver在子元素中查找元素 当我尝试答案时,它给了我一个空白数组。 结果: 请建议我如何实现这一点,如何
问题内容: 我使用了明确的等待,并发出警告: 元素在点(36,72)不可单击。其他元素将获得点击:…命令持续时间或超时:393毫秒 如果我使用我不会收到任何警告。 问题答案: 你可以通过以下任一过程解决它们: 1.由于存在JavaScript或AJAX调用而无法单击元素 尝试使用: 2.由于元素不在视口中,因此无法单击 尝试用于将元素带入视口中: 3.在元素可单击之前,页面正在刷新。 在这种情况下
问题内容: 我试图单击此页面上的元素: 在这一点上,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时: 全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。 我认为这是由于位于错误的iframe中,而我找到了所有ifram
我在亚马逊购物应用上测试过。我有一个问题后滑动找到一个元素。因为列表视图太长了。我需要滚动(使用刷卡API)。但是在我滑动之后,我不能再点击元素了。它没有返回错误,但应用程序没有响应。 函数ScrollToElement()用于滑动到搜索元素。我试着用触控动作轻拍,但没有希望。我试图找到一个准确的(372466)位置,但效果并不理想。提前谢谢。