【问题标题】:Issue finding a string in scripts using xpath/selenium/python使用 xpath/selenium/python 在脚本中查找字符串的问题
【发布时间】:2018-05-10 19:11:26
【问题描述】:

我正在扫描一个网站以检查该网站上是否存在某个脚本。我已经成功地从大多数网站中提取了这些信息,但也有一些给我带来了麻烦,例如。 247sports.com,我无法获取此信息,DOM 看起来像这样

...

<iframe src='...'>
  <!DOCTYPE html>
  <html lang..>
  <head>
  <iframe> ...</iframe>
  ...
  <script id="utag_81" src="https://js.agkn.com/prod/v0/tag.js?_rnd=0.6281110988358267" type="text/javascript" charset="utf-8" async=""></script>
  ...
</iframe>

我正在使用 Firefox Webdriver 在 src="https://js.agkn.com/prod..." 中查找“agkn”字符串

Python 代码:

x = Webdriver.find_elements_by_xpath("(//iframe|//script|//img|//a)[contains(text(),'agkn') or contains(@src,'agkn') or contains(.,'agkn') or contains(@id,'utag_81') ]")

x 的长度始终为 0。

&lt;!DOCTYPE html&gt; 是否与此有关?

【问题讨论】:

标签: python selenium xpath


【解决方案1】:

如果您的代码中有 iframe,则需要先切换到该 iframe 并从该级别获取元素。

示例代码:

self.driver = webdriver.Firefox()
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
elem = driver.find_element_by_xpath("/html/body/img") 

【讨论】:

  • 出于某种原因 switch_to_frame(Name/ID) 一直给我带来问题,所以我使用了 switch_to.frame(i),它就像一个魅力
  • 我的错误。正确的语法是你提到的 switch_to.frame(i) 。也编辑过帖子。
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-11
  • 1970-01-01
相关资源
最近更新 更多