【问题标题】:iFrame not identifying by Selenium WebdriverSelenium Webdriver 无法识别 iFrame
【发布时间】:2017-05-30 00:30:19
【问题描述】:

这是我第一次发布问题。我花了超过 3 天的时间试图弄清楚如何通过 webdriver 识别 iFrame。这是我的html代码:

<iframe id="emailBodyIframe" class="" frameborder="0" src="about:blank" style="height: 151px;">
<html>
<head>
<body>
<p>Dear Administrator,</p>
Here is a passport number : XXXXXXX
<span class="sv-b212-highlighting" style="background-color:#B9DFF5;">aba</span>
#: 0000-0000-0
<p>Regards,</p>
<p>Local Archive</p>
</body>

这是给我错误的代码

FRAME = self.driver.find_element_by_tag_name("iframe").text
self.driver.switch_to().frame(FRAME)
body1 = self.driver.find_element_by_css_selector("span.sv-b212-highlighting").text
print body1
#self.driver.find_element_by_css_selector("span.sv-b212-highlighting").text
#self.driver.switch_to.frame(highlight,self.driver.find_element_by_css_selector("iframe[id='emailBodyIframe']").text)
  • 我得到的错误是

AttributeError: SwitchTo 实例没有 call 方法

  • 我的问题是

如何识别 iFrame 中突出显示的 CSS?

我已尝试使用本网站上提供的其他代码示例进行其他一些变体。所有人都返回不同的错误。我是 python 新手,还在学习。

有人知道我该怎么做吗?

【问题讨论】:

    标签: python selenium iframe webdriver identification


    【解决方案1】:

    您需要获取 web 元素,而使用 FRAME 变量,您打算仅从 iframe 获取文本。尝试使用以下代码:

    self.driver.switch_to_frame("emailBodyIframe")
    body1 = self.driver.find_element_by_css_selector("span.sv-b212-highlighting").text
    print body1
    

    如果你想处理元素,你不必添加.text。仅用于从 web-element 获取文本值

    【讨论】:

    • 谢谢安德森。不幸的是,那没有用。我收到一个错误:NoSuchElementException: Message
    • 试试body1 = self.driver.find_element_by_xpath('//span[contains(@class, "highlighting"]').text
    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2019-07-03
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    相关资源
    最近更新 更多