iFrame无法通过Selenium Webdriver识别

时间:2017-01-14 20:48:50

标签: python selenium iframe webdriver identification

这是我第一次发帖提问。我花了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实例没有调用方法

  • 我的问题是

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

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

任何人都知道我该怎么做?

1 个答案:

答案 0 :(得分:0)

您需要获取网络元素,而使用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

获取文本值