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)处不可点击。其他元素将>收到点击:。。。

有人能帮忙吗?

Selenium框架使用C#

这主要发生在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);

希望它能帮助…:)