python selenium从下拉菜单中选择

2024-06-09 03:37:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试选择this website上的“CAS Number”选项。通过阅读其他文章,我已经使用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()

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


Tags: boxidbyvaluedriverwebsiteelementfind
3条回答
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()

在检查了那个网站的DOM之后,<select id="selectbox" name="focus" style="display: none;">不是人们在UI中看到的那个。

实际下拉菜单是:

<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()

首先单击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()

注意,它不是一个常规的select标记,使用^{}可以更容易地操作

相关问题 更多 >