按钮单击在Selenium Webdriver中不起作用

时间:2018-09-04 15:04:46

标签: selenium

按钮单击在Selenium Webdriver中不起作用。

尝试使用类名和xpath。

提交订单

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

4 个答案:

答案 0 :(得分:0)

您可以尝试使用Action Class或JavaScript Executor单击按钮:

动作类别:

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

JS执行器:

((JavascriptExecutor) driver).executeScript("arguments[0].click();", driver.findElement(WebElement to Click));

答案 1 :(得分:0)

selenium web driver element click not working in 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(开源)以获取更多示例 在文件夹/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

答案 2 :(得分:0)

您可以通过两种方式尝试

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);

答案 3 :(得分:0)

我在 HtmlUnit 驱动程序上遇到了这个问题。解决方案是重新启用 css,因为我在驱动程序配置中禁用了它。

假设 z-index 不是从 css 加载的,这意味着按钮不可访问,因此不可点击。