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

按钮单击在selenium webdriver中不工作

刘棋
2023-03-14

按钮单击在selenium webdriver中不工作。

尝试使用类名和xpath。

提交订单

//*[@id="main-content"]/div[3]/div[5]/div[1]/div/div[2]/div/div/button[2]

共有3个答案

颜骁
2023-03-14

你可以用这两种方法试试

Actions action = new Actions(driver); 
element = driver.findElements(By.xpath("//*[@id="main-content"]/div[3]/div[5]/div[1]/div/div[2]/div/div/button"));
action.moveToElement(element).click();

driver.findElement(By.xpath("//*[@id="main-content"]/div[3]/div[5]/div[1]/div/div[2]/div/div/button")).sendkeys(Keys.Enter);
拓拔阎宝
2023-03-14

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

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

  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(开源)以获取更多html" target="_blank">示例:/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

您可以尝试使用Action类或JavaScript执行器单击按钮:

行动类:

Action action=new Actions(driver);
action.moveToElement(WebElement to Click).click().perform();

执行人:

((JavascriptExecutor) driver).executeScript("arguments[0].click();", driver.findElement(WebElement to Click));
 类似资料:
  • 我有一个点击单选按钮的代码,一开始我用的是Chrome。使用下面的代码: 我发现了一个错误: 做研究的时候,我把代码改成: 当我单击单选按钮时,标签会在单击时获得一个附加属性。 其他编辑: 这组按钮如下所示:

  • 我有困难与提交按钮,它不是点击phantomJS相同的代码时运行在Selenium作品。有人有什么建议(Java)吗? 公务舱航班 {WebDriver driver;File File File=新文件(“C:/Program Files/phantomjs-2.1.1-windows/bin/phantomjs.exe”);@Test public void homePageFlightDet

  • 我需要在商品搜索中键入“香蕉”,然后点击“GO”按钮。 在堆栈溢出的帮助下,我可以调出火狐,输入“香蕉”...但是“Go”按钮(基于检查的Go3)不会开火!! 我试过element.click(),试过ActionChains,试过将光标移动到元素,试过验证它已经启用。它只是不会转到下一个搜索页面。 我没有得到任何错误...它只是没有进入下一页。 谢谢你能提供的任何帮助。快把我逼疯了!

  • 编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,

  • 问题内容: 我一直在为FF写我的脚本,但希望他们所做的工作很少,它们也可以在其他浏览器上运行,但是IE驱动程序似乎存在按钮问题? 我在按钮上有一个简单的webelement.click(),不会引发错误,但不单击按钮。在FF它的罚款。我可以获取文本,获取价值,所以我知道find语句是可以的,只是不会单击它。 想法或帮助会很棒 只是做 HTML-控件上有3个按钮,我现在只对登录感兴趣 问题答案: 遇

  • 我正试图抓取一个页面,获取一盘国际象棋的移动列表,该列表位于右侧菜单的“移动”选项卡下。 在浏览器中手动单击“移动”选项卡时,我可以通过 哪个(正确地)返回 当尝试通过单击按钮时,使用 似乎什么都没有发生,我不知道如何进行故障排除。 如何通过模拟单击(活动事件侦听器)切换到“移动”选项卡? 额外提示:是否可以使用rvest软件包?