使用Xpath(Selenium C#)在<iframe>内找到一个HTML元素

顽皮的忍者

我正在尝试通过部分类查找此元素,HTML代码如下:

<a class="follow-button profile" href="https://twitter.com/123" 
role="button" data-scribe="component:followbutton" title="Follow 123 
on Twitter"><i class="ic-button-bird"></i>Follow</a>

我使用的方法如下:

var element = Driver.FindElement(By.XPath("//a[contains(@class, 'follow-button profile')]"));

有什么想法可能是找不到元素的原因是什么?

理查德

NoSuchElement 异常通常具有以下原因之一:

  1. 您的元素在<frame>或内<iframe>检查您的HTML。

    • 在这种情况下,您可以使用 SwitchTo().Frame()
    • Frame() 接受3个论点
      • 一个 IWebElement
        • IWebElement frameElement = driver.FindElement(By.Tag("frame"));
        • driver.SwitchTo().Frame(frameElement);
      • <frame name="MyFrame">或的名称<iframe>
        • driver.SwitchTo().Frame("MyFrame");
      • <frame>或的索引<iframe>,从0开始
        • SwitchTo().Frame(0)
    • <frame>上下文中完成操作后,您将需要切换回正确的上下文
      • driver.SwitchTo().DefaultContent();
  2. 在Selenium认为您的页面已完成加载后,您的元素正在页面上加载

    • 在这种情况下,您可以Wait用来告诉Selenium暂停,直到元素完成在页面上的加载。
    public WebDriverWait wait =新的WebDriverWait(驱动程序,TimeSpan.FromSeconds(2)); 
    wait.Until(驱动程序=> driver.FindElement(ByLocator));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用 Xpath 和 Selenium 在 iframe 中找到元素

C#/Selenium - 无法使用 contains() 找到 XPath 文本

从iFrame切换到父框架,并使用Selenium Webdriver在父框架中查找元素。C#

使用 Selenium 无法在 iframe 中找到元素

无法使用 C# 在 selenium webdriver 脚本中使用 XPath 定位元素

当我使用 Xpath 在 Selenium C# 中搜索元素时,我的测试总是失败

如何使用Xpath在iframe中选择元素?

使用 xpath 通过 Selenium 计算一些节点。C#

无法通过iFrame中的xpath单击元素-Selenium

使用Selenium WebDriver Python无法在iframe中找到元素

如何使用c#将带asp.net 4.0的html源设置为iframe

Selenium 沒有找到 iframe 元素

无法在 IFrame (Selenium) 中找到元素

org.openqa.selenium.NoSuchElementException:返回节点(空)不是试图找到由CssSelector卡领域的iframe,当一个DOM元素

使用 python selenium 从 iframe 内的列表中选择元素

Selenium Webdriver C# 无法使用有效的 XPath 表达式在 Chrome 中定位元素

无法在 python selenium 中使用 xpath 和 id 定位 iframe

Webdriver Selenium 单击 Iframe 内的 <li> 元素

C#:Selenium:如何根据另一个元素的内部文本查找元素

无法使用 xpath 找到元素 selenium python

C ++使用std库在向量中找到满足条件的第一个元素

如何使用C#在iframe外部重定向页面

从使用 iframe c# 的网页中抓取数据

前一个元素的Selenium XPath

如何为 Selenium(c#) 使用的 XPath 传递通配符

如何使用Selenium for C#通过XPath查找文本?

Selenium C#:无法使用类名识别 xpath

如何使用 selenium 找到 iframe 中存在的控件?

Selenium,如何在c#中获取类的最后一个元素