[英]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.