Selenium - 点击按钮使用javascript无法正常工作

时间:2015-04-09 01:42:47

标签: javascript selenium-webdriver

我有一个元素,其中selenium选择为禁用。但是,启用了。 因此我使用javascript点击它。 以下是我使用的代码段:

IWebElement button = driver.FindElement(By.XPath(ButtonXpath));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click()", button);

当我执行此代码时,没有任何反应。它跨过这些行,并且按钮(实际上在这种情况下是锚)没有被点击。 我不能使用id,因为锚没有。

如何强制执行点击?

谢谢, 拉胡

1 个答案:

答案 0 :(得分:1)

这很可能是因为错误的选择器或元素加载问题。在执行脚本之前,您需要确保正确找到该元素。检查选择器并在需要时使用一些明确的等待。

//This test works with or without the explicit wait
[Test]
public void ExecutorTest()
{
    _webDriver = new ChromeDriver();
    _webDriver.Navigate().GoToUrl("https://github.com/");
    _webDriver.Manage().Window.Maximize();

    By xpathBy = By.XPath("//a[@href='/join']");
    IWebElement element =
        new WebDriverWait(_webDriver, TimeSpan.FromSeconds(10))
        .Until(ExpectedConditions.ElementExists(xpathBy));

    ((IJavaScriptExecutor)_webDriver).ExecuteScript("arguments[0].click();", element);

    _webDriver.Quit();

}