我正在尝试模拟在线数据工具上的多个选项的点击,最后以给定过滤器的条件下载Excel工作表。
我目前正在使用硒并识别xpath。
我能够完成一次迭代并获得一张excel工作表,但是我需要对下拉选项的每个可能排列进行此操作。手工完成是不现实的,因为有成千上万种选择。
上下文网站:https://data.cms.gov/mapping-medicare-disparities
有人知道可以在硒中起作用的功能吗?
我当前的策略是使用xpath创建列表,然后尝试执行置换功能以获取所有组合。但是,这没有用,因为函数:b.find_element_by_xpath一次仅允许一个xpath。
G1 ='//选择[@ id =“地理”] //选项[@ value =“ c”]' G2 ='//选择[@ id =“地理”] //选项[@ value =“ s”]'
地理位置= [G1,G2]
导入itertools 从itertools进口产品
产品中的烫发(地理位置,调整,分析,领域): 打印(烫发)
ajax()
**from** selenium **import** webdriver
**from** selenium.webdriver.common.keys **import** Keys
b = webdriver.Firefox()
pop_up = b.find_element_by_xpath('/html/body/div[1]/button')
pop_up.click()
错误消息:InvalidArgumentException:消息:无效类型:序列,应在第1行第28列输入一个字符串
这是因为find_element_by_xpath(我假设)一次只会看到1个xpath。
答案 0 :(得分:1)
您在代码中尝试使用xpath的语法... 仍然是错误的,但是您可以将所有xpath放在列表中并遍历它。
xpathlist=['//select[@id="geography"]//option[@value="c"]', '//select[@id="adjust"]//option[@value="1"]',.....]
for xp in xpathlist:
b.find_element_by_xpath(xp)
#then add code to click or download or whatever