使用Python/Selenium访问iframe内部的链接并获取url
我的主html页面有一个iframe,我需要获取生活在那里的文本使用Python/Selenium访问iframe内部的链接并获取url,python,html,selenium,iframe,Python,Html,Selenium,Iframe,我的主html页面有一个iframe,我需要获取生活在那里的文本code:LWBAD 查看图片以更好地了解: 下面是我的主html页面源代码,其中包含一个iframe: <td class="centerdata flag"><iframe style="width: 200px; height: 206px;" scrolling="no" src="https://www.example.com/test/somewhere" ></iframe><
code:LWBAD
查看图片以更好地了解:
下面是我的主html页面源代码,其中包含一个iframe:
<td class="centerdata flag"><iframe style="width: 200px; height: 206px;" scrolling="no" src="https://www.example.com/test/somewhere" ></iframe></td>
*无法从网络外部访问URL,这就是我使用example.com的原因您应该使用
iframe = driver.find_elements_by_tag_name('iframe')[0]
driver.switch_to.frame(iframe)
# your work to extract link
driver.switch_to_default_content()
text = driver.find_element_by_tag_name('body').text
用于多个url
find\u elements\u by\u tag\u name
将返回一个数组。所以使用for循环
iframe = driver.find_elements_by_tag_name('iframe')
for i in iframe:
driver.switch_to.frame(i)
# your work to extract link
driver.switch_to_default_content()
只获取文本
使用
iframe = driver.find_elements_by_tag_name('iframe')[0]
driver.switch_to.frame(iframe)
# your work to extract link
driver.switch_to_default_content()
text = driver.find_element_by_tag_name('body').text
在驱动程序之后,切换到帧(i)
试试这个:
iframe = driver.find_elements_by_tag_name('iframe')
for i in range(0, len(iframe)):
f = driver.find_elements_by_tag_name('iframe')[i]
driver.switch_to.frame(i)
# your work to extract link
text = driver.find_element_by_tag_name('body').text
print(text)
driver.switch_to_default_content()
你在任何地方都不能切换到
iframe
。@伙计,我是Python新手,你介意告诉我切换到框架的位置吗?很好@如果我有多个iframe URL怎么办?要循环所有iframe URL,需要更改什么?如何只打印文本?”因为现在它打印整个html源代码。文本是什么?您想要哪个?我的输出如下所示:
code:LWBAD
但我只想打印出code:LWBAD
?任何人有什么想法吗?没有运气:(只有在有一个url时才有效:(stale元素引用:元素未附加到页面文档中)
现在开始!问题出在哪里?现在工作非常顺利。当driver.切换到默认内容()
drive需要重新找到iframe。因此我使用f=driver.find\u elements\u by\u tag\u name('iframe')[i]找到它
我不需要IDE来测试我的代码,否则我会从一开始就建议它。啊哈!你就是那个人!最后一个问题,很简单,我如何才能从输出中去掉代码:
部分,所以我只有干净的:LWBAD
?每次都需要删除代码:??