python selenium从下拉菜单中选择

时间:2014-06-30 21:08:11

标签: python selenium

我正在尝试在this website上选择“CAS号码”选项。通过阅读其他帖子,我使用Selenium

编写了几个Python代码
driver.find_element_by_css_selector("select#selectbox > option[value='cas']").click()

driver.find_element_by_xpath("//select[@id ='selectbox']/option[@value ='cas']").click()

box = driver.find_element_by_id('selectbox')
    for option in box.find_elements_by_tag_name('option'):
    if option.text == 'cas':
    option.select()

但是他们都没有选择合适的方框。所以我想知道问题出在哪里。

3 个答案:

答案 0 :(得分:2)

首先单击input,然后单击所需的列表项。示例,适用于CAS Number

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.strem.com')

element = driver.find_element_by_id('selectbox_input')
element.click()

li = driver.find_element_by_id('selectbox_input_cas')
li.click()

请注意,使用selenium.webdriver.support.select.Select.

可以更轻松地操作常规select标记

答案 1 :(得分:2)

在检查该网站的DOM后,<select id="selectbox" name="focus" style="display: none;">不是人们在用户界面中看到的。

实际的下拉菜单是:

<div id="selectbox_container" class="selectbox-wrapper" style="display: none; width: 150px;">
   <ul>
      <li id="selectbox_input_product" class="selected">Product Name or Number</li>
      <li id="selectbox_input_cas">CAS Number</li>
      <li id="selectbox_input_mdl">MDL Number</li>
      <li id="selectbox_input_msds">MSDS</li>
      <li id="selectbox_input_cofa">Certificate of Analysis</li>
      <li id="selectbox_input_formula">Molecular Formula</li>
      <li id="selectbox_input_keyword">Keyword</li>
   </ul>
</div>

因此,请尝试以下代码:

driver = webdriver.Chrome()
driver.get("http://www.strem.com/")

driver.find_element_by_id("selectbox_input").click()
driver.find_element_by_id("selectbox_input_cas").click()

答案 2 :(得分:0)

theMenu = self.browser.find_element_by_link_text('Title of Menu')
theMenu.click()
menuItem = self.browser.find_element_by_link_text('Title of Menu Item')
menuItem.click()