【问题标题】:How to Error Handling Selenium can't click element because other element obscures it in c#? [duplicate]如何错误处理 Selenium 无法单击元素,因为其他元素在 C# 中遮挡了它? [复制]
【发布时间】:2019-04-09 21:49:56
【问题描述】:

我使用了DebanjanB's answer,但没有解决错误:

元素在点 (860.5999755859375,36.69999694824219) 处不可点击,因为另一个元素遮住了它。

IWebDriver MyDriver = new FirefoxDriver();
IWebElement Element1 = MyDriver.FindElement((By.XPath("//a[@class='pagination-button pagination-button--next']")));
//IWebElement Element1 = MyDriver.FindElement((By.XPath("//html/body/main/div/div/div[3]/section[2]/header/div[1]/ul/li/a[@class='pagination-button pagination-button--next']")));
Element1.Click();

我大约十次得到一次错误。

【问题讨论】:

  • 是什么遮挡了元素?你需要解决这个问题......没有一种尺寸适合所有人。像用户一样接近它......用户会做什么来解决这种情况?是对话吗?关闭它。是正在加载...屏幕吗?等待它出现然后消失......列表还在继续。使用更多信息和相关 HTML 更新您的问题。

标签: c# selenium selenium-webdriver


【解决方案1】:

您尝试使用的解决方案是 Java。你已经在 C# 下发布了这个。如果元素被遮挡并且没有消失(重叠元素),例如加载屏幕使用 javascript 将其从 dom 中删除,然后单击。

这应该可以。请用您的标识符替换我的按钮

WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15));
IWebElement element = wait.Until(ExpectedConditions.ElementToBeClickable(myButton));

编辑:

不要忘记实际点击元素。

element.click();

【讨论】:

  • 另外,请参阅 DebanjanB 对javaScriptExecutor 的回答 #6。
  • 不工作,同样的错误
  • 我需要查看代码。它是否告诉什么元素阻止了它?使用 selenium 检测遮挡您想要单击的元素的元素,当检测到时使用 javascript 将其删除,这样就不会遮挡您的元素。把完整的错误日志发给我,我会写代码。
  • 好吧,我的朋友...
猜你喜欢
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
相关资源
最近更新 更多