我有这行代码。
driver.FindElement(By.Id("BCA-button")).Click();
这在“家”中工作正常。
我正在C#单元测试项目中使用这些库。
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.IE;
同一代码停止在“办公室”中工作并给出此错误。
OpenQA.Selenium.WebDriverException: 'Cannot click on element'
我的“家庭”和“办公室”环境之间唯一的区别是,我在办公室和高速互联网中拥有更大的显示器。
不确定,为什么这些因素会影响这一行代码。昨天,相同的代码在“家庭”中工作,今天在“办公室”中引发错误。
有什么想法吗?
这是另一种尝试。
答案 0 :(得分:0)
得出<<extends>>
和WebDriverWait
()
ElementToBeClickable
您需要导入该库。
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement elebutton = wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("BCA-button")));
elebutton.Click();
答案 1 :(得分:0)
我认为最好的方法是使用XPath。您可以创建一个延迟,直到找到XPath元素。
答案 2 :(得分:0)
在这里很好地解释了单击元素的不同方式:Selenium Web Driver & Java. Element is not clickable at point (x, y). Other element would receive the click
当element.click()
即使元素可用并且显式等待应用于元素时,我也总是使用第五种方式。
答案 3 :(得分:0)
答案 4 :(得分:0)
出现异常的原因:
OpenQA.Selenium.WebDriverTimeOutException: 'Cannot click on element'
是WebDriver正在等待该元素,但是在达到超时限制之前找不到它。
还有其他包裹或覆盖您要单击的元素的元素吗?
答案 5 :(得分:0)
尝试隐式等待
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(50);