【问题标题】:Selenium (C#), finding elements using JavaScript failsSelenium (C#),使用 JavaScript 查找元素失败
【发布时间】:2018-03-15 18:18:16
【问题描述】:

我正在尝试使用 JavaScript 查找 Web 元素。正在找到第一个元素。当我使用类似的代码查找另一个元素时,我得到 null ref。例外。当我将代码输入开发人员工具 (F12) 时,正在找到元素。

这是我使用的代码:

IJavaScriptExecutor js = Driver as IJavaScriptExecutor;
IWebElement ChangeAccessRightsLink = (IWebElement)js.ExecuteScript("return document.getElementsByClassName('aaaaaaaaa')[1];");
ChangeAccessRightsLink.Click();
IJavaScriptExecutor jss = Driver as IJavaScriptExecutor; //AddNewAccessRightButton =null :(
IWebElement AddNewAccessRightButton = (IWebElement)jss.ExecuteScript("return document.getElementsByClassName('bbbbbbbbb')[0];");

【问题讨论】:

  • 分享 URL 或 HTML 以便于回答
  • 当你像这样使用 JSE 时,你有点违背了使用 Selenium 的意义。为什么不直接用 Selenium 来获取元素呢?你在 JSE 中没有做任何你不能用 Selenium 做的事情。
  • 我同意,@iamsanklap89。 C# 上的 Selenium 驱动程序根本无法使用 XPath 或 Class 找到它。因为我想快速修复它,所以我使用了 JavaScript。

标签: javascript c# selenium


【解决方案1】:

你需要等到你的 JS 没有准备好。 尝试显式等待,流畅等待。

【讨论】:

  • 这是绝对正确的答案!太棒了,它是多么简单 - 增加一秒钟的工作量。
  • 很高兴它对您有用。投票给你。您现在将有权投票给帖子:)
猜你喜欢
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多