繁体   English   中英

Selenium Click 不工作 - Chrome 驱动程序 - 版本 73.0.3683.68

[英]Selenium Click not working - Chrome Driver - Version 73.0.3683.68

我刚刚将我的 Chrome 驱动程序更新到最新版本 - 73.0.3683.68,自从我的“点击”功能无法正常工作以来(它有时确实有效,但不是每次都有效)。

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

我用 C# 编码。

最大的问题是 Selenium 就像“单击”正常工作并移动到下一个功能一样,但它失败了,因为该元素尚未出现在屏幕上。

应该注意的是,在点击元素之前,我们会验证该元素是否可点击。

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

像单击和验证这样的功能?

谢谢。

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

以下是更多信息的站点: http : //chromedriver.chromium.org/downloads查看发行说明,您会在那里找到信息。

我希望这能解决您的问题。

我不确定点击会做什么,但假设它会将您带到一个新页面。 您可以添加一个方法来查看您刚刚单击的按钮是否仍然可见,如果是,请再次单击它。 话虽如此,当您调试它并进入它时,它是否有效? 也许先尝试一个 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);
        }

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM