【问题标题】:No such element: Unable to locate element OpenQA.Selenium in C#没有这样的元素:无法在 C# 中找到元素 OpenQA.Selenium
【发布时间】:2020-07-27 00:06:08
【问题描述】:

我正面临这个异常:

OpenQA.Selenium.NoSuchElementException: '没有这样的元素:无法 定位元素:{“方法”:“css 选择器","选择器":"#MuliCloudAccountSelector"}

我的代码:

driver.FindElement(By.Id("MuliCloudAccountSelector")).Click();

我的 HTML:

<div id="MuliCloudAccountSelector" class="antd-pro-src-components-page-header-wrapper-multi-account-selector-antpopover" style="border: 1px solid rgb(217, 217, 217); margin-left: 6px; margin-right: 10px; height: 40px; float: left; min-width: 24px; border-radius: 4px; max-width: 316px; overflow: hidden;">

我错过了什么?

【问题讨论】:

  • 可能是页面渲染延迟的原因?我会尝试在点击命令之前插入一个睡眠命令。

标签: c# selenium selenium-webdriver css-selectors


【解决方案1】:

您需要等待元素可点击:

var wait = new WebDriverWait(drive, TimeSpan.FromSeconds(30));
var div = wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("MuliCloudAccountSelector"));

div.Click();

Selenium 和浏览器之间可能存在竞争条件。您在页面中呈现元素之前找到该元素。

【讨论】:

  • 现在我面临这个异常:OpenQA.Selenium.WebDriverException: '对远程 WebDriver 服务器的 URL localhost:54956/session/348b48f3a473ec89625cecf50b643271/url 的 HTTP 请求在 60 秒后超时。'
  • @Saher:这似乎是一个不同的问题。 Web 浏览器喜欢自动更新到较新的版本。您需要检查您使用的 Web 驱动程序是否正确支持您的 Web 浏览器版本。
猜你喜欢
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-30
  • 2021-07-07
相关资源
最近更新 更多