Python - 关于selenium dropbox的问题,没有用于Web爬行的选项和协议复选框

问题描述 投票:1回答:1

我想抓住this website。我需要:

  1. 选择技术选项之一
  2. 检查“我已阅读并同意以下免责声明”
  3. 单击“搜索”按钮
  4. 抓取以提取网址

经过多次尝试,到目前为止,我有几行代码。要做第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而不是下面的“Microamperage Neural Stimulation”选项:

<li class="rcbItem"><label><input type="checkbox" class="rcbCheckBox">Microamperage Neural Stimulation</label></li>

如何设置这三个选项并获得结果?

谢谢。

python python-3.x selenium selenium-webdriver web-crawler
1个回答
1
投票

这是我做的:

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异常。之后,您应该能够等待结果返回。

© www.soinside.com 2019 - 2024. All rights reserved.