【问题标题】:Interacting with flash with selenium webdriver Python使用 selenium webdriver Python 与 flash 交互
【发布时间】:2017-10-10 08:55:57
【问题描述】:

我正在尝试构建一个工具,用于从使用 Flash 和 Oracle BI 工具的网站自动抓取信息。当我们选择事物时会显示信息,并使用 Flash 渲染图像。

由于我无法从图像本身中删除信息(据我目前所知),我发现右键单击图像,打开一个带有“切换到表格”的菜单并再次单击它,打开一个包含数据的页面在可从 HTML 树中抓取的表格上。我的问题是点击 Flash 对象(图像),比如:

from selenium.webdriver.support import expected_conditions as EC

elem = WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.XPATH, '(//embed[@type="application/x-shockwave-flash"])[1]')))

menu=ActionChains(browser).move_to_element_with_offset(elem, 61, 61).click().perform()

然后我尝试单击“切换到表格”选项,但我无法这样做,因为我相信 selenium 仍在单击菜单下方的图像。我尝试过的(使用不同的偏移值并使用 elem 和菜单元素但没有成功):

ActionChains(browser).move_to_element_with_offset(elem, 75, 75).click()

有什么方法可以做到这一点? 网址是:http://www.adrreports.eu/

获取图片的步骤:

单击语言 -> 搜索报告 -> 选择一个字母,然后选择一种药物(出现新选项卡)-> 选择名为“所选反应的个别病例数”的选项卡(右上方第 4 个),然后尝试从左侧的图像中获取信息

谢谢,

【问题讨论】:

  • 你应该尝试使用的链接是http://www.adrreports.eu/tables/product/a.html 在链接中你可以看到.html 之前的字母a,这是可以更改为z 的字母。现在尝试继续处理这条线索。
  • 感谢您的意见,但我的问题是一个非常愚蠢的问题,因为我在正确的轨道上但没有给页面加载足够的时间。谢谢!

标签: python selenium flash web-scraping


【解决方案1】:

这很尴尬。

我的想法非常有用,尽管不是很优雅。 带偏移量:

menu=ActionChains(browser).move_to_element_with_offset(elem, 61, 61).click().perform()
ActionChains(browser).move_to_element_with_offset(elem, 66, 76).click().perform()

我能够单击 Flash 菜单上的切换表并显示带有值的新页面。

主要问题是让页面加载,而且似乎需要相当长的时间。

time.sleep(10)

时间睡眠成功了!

此方法有效,但如果有人对从 Flash 图像或文件中提取信息有更好的想法,我很想听听!

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多