【问题标题】:How to write Xpath for webelement which are on iframe using firebug/Firepath?如何使用 firebug/Firepath 为 iframe 上的 webelement 编写 Xpath?
【发布时间】:2017-11-21 10:22:09
【问题描述】:

  1. 我可以使用或不使用 Firebug/Firepath 来编写 Xpath,但如果可以使用这些第三方工具使用 iframe 编写 Xpath,那就太好了。

  2. 首先我需要移动到 iframe,然后为 webElements 编写常规 Xpath

【问题讨论】:

  • 请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: xpath firebug firepath


【解决方案1】:

使用 xpath 查找 iframe。然后使用 getattribute() 获取 src。然后导航到 src。

例如:

var myFrame = driver.FindElement("descendant::iframe[@name='TheIFrame']");
string frameSrc = myFrame.GetAttribute("src");
driver.Navigate().GoToUrl(frameSrc);
//now you're on the frame and interact with its DOM

如果您不想离开当前页面,您有以下几种选择:

1) 创建一个新的驱动程序并在那里导航

2) 使用 httpclient(比驱动程序的开销少)通过向 src url 发送 get 来获取内容,然后使用 HTMLAgilityPack 将其加载到您可以使用 XPath 导航的 HTMLDoc 中 - 当然这可以让您抓取数据但您将无法单击按钮或与 javascript 交互。

【讨论】:

  • 请看上图,感谢您的评论,但您的回答不是我的期望。我想专门为 iframe 使用 Firepath
  • 您可能需要修复标签,以便合适的人看到您的问题。您的问题似乎是关于 firebug 和 xpath 而不是 C# 和 Selenium。
猜你喜欢
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2017-12-09
  • 2018-06-19
  • 2023-03-14
相关资源
最近更新 更多