阅读J.Kazil的“数据与Python之争”,我在这个例子中介绍了使用Selenium进行屏幕阅读。代码(遵循作者给出的代码)如下:
# sele.py
1 import time
2 from selenium import webdriver
8 browser = webdriver.Firefox()
9 browser.get('http://www.fairphone.com/we-are-fairphone/')
11 iframe = browser.find_element_by_xpath("//iframe[@id='twine-iframe-none']")
12 new_url = iframe.get_attribute('src')
13 browser.get(new_url)
14 time.sleep(4)
15
16 all_bubbles = browser.find_elements_by_css_selector('div.content')
17 for elem in all_bubbles:
18 print(elem.text)
我更改了这本书的一些代码:
第11行:“datawrangling”作者的原始代码只对xpath表达式使用了//iframe,这导致了一个空白页
第14行:我在这里添加了超时,因为没有超时,只会返回命令行光标
第18行:python2可以使用原始代码,但是到目前为止,将示例更改为python3仍然有效(我现在在第320页)
这样会打开一个新的浏览器窗口,加载fairphone的主页,并切换到iframe部分。这一切都很好。下一步就是打印出“气泡”的内容,但这不会发生。相反,我收集了一个相当详细的错误消息:
^{pr2}$我在虚拟环境中使用Python3.5(操作系统是Ubuntu16)。我被困在这里,像Read the Docs这样的文档只会帮助我前进到现在的位置。 我知道有一些很酷的东西,比如Beautiulsoup或Scrapy,但是我现在想用Selenium来做这个。在
编辑:Another question被标识为可能的重复项。 这个问题是在Bugsnag和Perl的上下文中提出的。尽管如此,我还是尝试了上面提到的解决方法,添加
15 active_element = browser.switch_to_active_element()
改变
16 all_bubbles = active_element.find_elements_by_css_selector('div.content')
产生了相同的错误信息。我注意到错误消息的最后一部分确实在最后一行中嵌套了bugsnag。我不确定这与我的设置有什么关系,因为我没有使用bugsnag。不过,提到我使用的是firefox48和Selenium 2.53.6可能会有帮助
switch_to_active_element()
已被弃用。在所以,应该是:
你可以参考this
相关问题 更多 >
编程相关推荐