硒单击不起作用-Chrome驱动程序-版本73.0.3683.68

时间:2019-03-18 09:43:52

标签: c# selenium-chromedriver

我刚刚将我的Chrome驱动程序更新为最新版本-73.0.3683.68,并且自从我的“点击”功能无法正常运行(它确实有时可运行,但并非每次都可运行)。

Chrome版本:73.0.3683.75版(官方内部版本)(64位)

我用C#编写代码。

最大的问题是Selenium就像“点击”正常工作并前进到下一个功能一样,并在那里失败,因为该元素还没有出现在屏幕上。

请注意,在单击元素之前,我们确实验证了该元素是可单击的。

有没有办法确保“点击”功能确实发生?

“点击并验证”之类的功能吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

嘿,我能够通过更新到ChromeDriver 74.0.3729.6解决我的问题。您还需要使用Chrome的Beta版。在您的代码中,您将需要设置一个二进制路径以指向Chrome Beta,因为它使用的路径与当前版本不同。 Chrome在他们的文档中报告说,它有时会将点击发送到错误的版本73.0.3683.68的元素。

这里是更多信息的站点:http://chromedriver.chromium.org/downloads查看发行说明,您将在此处找到相关信息。

我希望这可以解决您的问题。

答案 1 :(得分:0)

我不确定点击的作用,但是可以说它带您进入了新页面。您可以添加一种方法来查看您刚刚单击的按钮是否仍然可见,如果是,请再次单击它。话虽这么说,当您调试它并进入它时,它起作用了吗?也许先尝试MoveToElement?您还可以添加一个Java单击来代替,老实说,它通常更可靠。我们添加了一个try catch并执行了c#单击,如果c#单击失败,则执行了js单击。两全其美。

    public static void Click(IWebElement element)
    {
        var actions = new Actions(driver);
        actions.MoveToElement((element));
        actions.Click(element).Perform();
    }


    public static void JClick(IWebElement element)
    {
        ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click();", element);
    }


    public static void LastChanceClick(IWebElement element)
    {
        try
        {
            Click(element);
        }
        catch (Exception)
        {
            ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click();", element);
        }

    }