使用selenium webdriver Python与flash交互

时间:2017-10-10 08:55:58

标签: python selenium flash web-scraping

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

由于我无法从图像本身中废弃信息(根据我目前的知识),我发现右键单击图像,打开“切换到表格”菜单并再次单击该图标,打开包含数据的页面在可从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和menu元素但没有成功):

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

有什么办法可以吗? 该网站是:http://www.adrreports.eu/

获取图片的步骤:

点击语言 - >搜索报告 - >选择一个字母,然后选择药物(出现新标签) - >选择名为“选定反应的个案数量”的选项卡(右上角第4个),然后尝试从左侧图像中获取信息

谢谢,

1 个答案:

答案 0 :(得分:0)

这很尴尬。

我的想法非常实用,即使不是很优雅。 使用偏移量:

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()

我可以点击闪光灯菜单上的开关表,然后让新页面显示值。

ADR Report flash image

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

time.sleep(10)

时间睡眠成功了!

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

谢谢。