python - Python - 关于 selenium Dropbox 的问题,没有选项和协议复选框用于网络爬取
问题描述
我正在尝试抓取这个网站。我需要:
- 选择技术选项之一
- 勾选“我已阅读并同意以下免责声明”
- 点击搜索按钮
- 抓取以提取网址
经过多次尝试,到目前为止我有几行代码。要执行第 1 - 3 部分,我会:
browser.find_element_by_xpath("//select[@name='Techniques']/option[text()='Diversified Technique']").click()
checkbox = browser.find_element_by_id("dnn_ctr5517_Clients_Custom_ctl00_cbAgree")
if not checkbox.is_selected():
checkbox.click()
buttons = browser.find_elements_by_xpath("//*[contains(text(), 'Search')]")
if not checkbox.is_selected():
checkbox.click()
这是行不通的。它不会给我任何错误,但也不会产生结果。
注意:对于技术,选项是 li 而不是下面的“微电流神经刺激”选项:
<li class="rcbItem"><label><input type="checkbox" class="rcbCheckBox">Microamperage Neural Stimulation</label></li>
如何设置这三个选项并返回结果?
谢谢你。
解决方案
这是我所做的:
browser.find_element_by_id('dnn_ctr5517_Clients_Custom_ctl00_rcbSkills_Input').click()
browser.find_element_by_xpath('//label[contains(., "Diversified")]/input').click()
checkbox = browser.find_element_by_id('dnn_ctr5517_Clients_Custom_ctl00_cbAgree')
if not checkbox.is_selected():
checkbox.click()
searchBtn = browser.find_element_by_id('dnn_ctr5517_Clients_Custom_ctl00_btnSearch')
searchBtn.click()
如果需要选择多个,可以重复第二行。您可能必须在前两行之间插入等待,因为您可能会遇到Element not visible
异常。之后,您应该能够等待结果返回。
推荐阅读
- android - Android - adapter.NotifyDataSetChanged 问题
- java - 尝试合并类的排序数组时出现空指针异常
- dax - Power Query - 一旦应用当前年份过滤器,DATEADD 就会失败
- python - 当您从嵌套字典中获得键时,Python/JSON 在字典中获取值?
- node.js - 谷歌云存储 NodeJS getFilesStream 异步
- python - 我的 django 项目中未解决的导入:VSCode
- python - 元组'对象不能被解释为 autopy 中的整数
- r - 3 cat() 结果在 3 个连续的行上
- c# - 超时已过。操作完成前的超时时间
- jquery - 正则表达式允许包含破折号的数字