我正在尝试构建一个工具,用于从使用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个),然后尝试从左侧图像中获取信息
谢谢,
答案 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()
我可以点击闪光灯菜单上的开关表,然后让新页面显示值。
主要问题是让页面加载,似乎需要相当长的时间。
time.sleep(10)
时间睡眠成功了!
此方法有效,但如果有人有更好的想法从Flash图像或文件中提取信息,我很乐意听到!
谢谢。