【发布时间】:2013-12-30 02:08:57
【问题描述】:
我正在尝试使用 python 以及 selenium 和 beautifulsoup 来提取数据/与 Web 应用程序交互。我能够很好地连接和提取一项数据。我遇到的问题是网络应用程序使用“选项卡”系统在同一窗口中打开页面。因此,例如在一个窗口/一个浏览器选项卡中,可能会打开五个不同的应用程序选项卡,其 HTML 格式相似,但数据不同。我希望能够在使用相同的 selenium 驱动程序时关闭这些选项卡。我已将元素缩小到在 HTML 中单击以执行此操作的位置。
看起来像这样
<div class="close" data-ember-action="21">
但是,我似乎无法按照自己的意愿与页面进行交互。
尝试点击我有的这个元素
item.click() #where item is <div class="close" data-ember-action="21">
HTML 代码如下所示
<div class="tab-content-holder">
<div class="close" data-ember-action="21">×</div>
<div class="icon"></div>
</div>
错误信息是
第 171 行,在 closeIt item.click() TypeError: 'NoneType' 对象不可调用
我也曾在另一篇文章 (How to mouseover in python Webdriver ) 中尝试过类似的操作,但运气不佳。
element = driver.find_element_by_class_name("close")
hov = ActionChains(driver).move_to_element(element)
hov.perform() #what's this?
driver.find_element_by_class_name("close").click()
实际上没有错误消息。程序在到达 click() 函数时停止。
我是否缺少一些简单的东西/我应该以其他方式解决这个问题?
【问题讨论】:
标签: python selenium beautifulsoup