我正在尝试在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()
但是他们都没有选择合适的方框。所以我想知道问题出在哪里。
答案 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()