当前位置: 首页 > 知识库问答 >
问题:

selenium web驱动程序元素在windows 10中单击不工作

滕令雪
2023-03-14

我在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."}.

共有3个答案

张炳
2023-03-14

更新浏览器和驱动程序,确保浏览器和驱动程序版本匹配-不能在浏览器版本70上使用驱动程序版本80,这就是为什么会出现TimeoutException

话虽如此,

点击可能不起作用的原因有很多,其中一些:

  1. 元素并不难处理。
  2. 其他元素将接收单击。
  3. 对于一些驱动程序实现,一些端例上的错误。
  4. 罕见-没有明显的原因。

首先,尝试显而易见的方法(提交,而不是单击)

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
袁文景
2023-03-14

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

丰岳
2023-03-14

试试这个:

而不是。单击()* 使用。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)位置,但效果并不理想。提前谢谢。