Selenium框架使用C#
本文关键字:框架 Selenium | 更新日期: 2023-09-27 17:57:49
我正在尝试查找元素Data Access。
这背后的HTML代码是:
<ul class="tabs left">
<li id="tabPersonalInformation" class="current first">
<li id="tabSystemAccess">
<li id="tabDataAccess">
<a href="#dataAccess">Data Access</a>
</li>
我使用的C#代码是:
Thread.Sleep(1000);
var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(20));
var DataAccess = wait.Until(ExpectedConditions.ElementIsVisible(By.LinkText("Data Access")));
DataAccess.Click();
找不到字段DataAccess。我得到的例外是:
WebDriver.dll中发生类型为"System.InvalidOperationException"的异常,但未在用户代码中处理附加信息:未知错误:元素在点(543,15)处不可点击。其他元素将>收到点击:。。。
有人能帮忙吗?
这主要发生在chrome浏览器中,因为目标元素与其他元素重叠。Selenium总是在元素的中心执行click
,因此由于其他元素的覆盖,它无法被点击。在这种情况下,您应该尝试使用IJavaScriptExecutor
点击,如下所示:-
var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(20));
var DataAccess = wait.Until(ExpectedConditions.ElementIsVisible(By.LinkText("Data Access")));
IJavaScriptExecutor js = Driver.Instance as IJavaScriptExecutor;
js.ExecuteScript("arguments[0].click()", DataAccess);
希望它能帮助…:)