Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python/Selenium访问iframe内部的链接并获取url_Python_Html_Selenium_Iframe - Fatal编程技术网

使用Python/Selenium访问iframe内部的链接并获取url

使用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><

我的主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></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
?每次都需要删除代码:??