我正在尝试找到一个下拉元素,以便可以从中选择一个选项,我已经看到Selenium具有一个用于处理选择下拉列表的内置类,但是我一直在努力寻找实际的元素。
谁能告诉我我要去哪里错了?
我要查找的元素
<div>
<label>Department<font color="red"><em>*</em></font></label>
<select name="department">
<option value="XXX">Select</option>
<option value="1">Department 1</option>
<option value="2">Department 2</option>
<option value="3">Department 3</option>
</div>
我尝试过的事情
browser.find_element_by_xpath("//div[@label='Department']")
browser.find_element_by_xpath("//div[@name='Department']")
browser.find_element_by_xpath("//select[@label='Department']")
browser.find_element_by_xpath("//select[@name='Department']")
不高兴-有人打来电话告诉我我要去哪里错了吗?
道歉的基本问题-硒新手和入门的初学者。
谢谢。
答案 0 :(得分:0)
在您的dom中,两点具有唯一标识以找到选择元素。
1。一个选择标签本身具有名称属性,其值为“部门”。 (小写)
browser.find_element_by_name("department")
或
browser.find_element_by_xpath("//select[@name ='department']")
或
browser. find_element_by_css_selector("select[name='department']")
2。另一种是带有innerText作为“部门”(标题)的标签,这是select的同级
browser.find_element_by_xpath("//label[text() = 'department']/following-sibling::select")
答案 1 :(得分:-1)
我遇到的问题是由于选择/下拉列表位于iframe
中。谢谢盖伊让我检查一下。
要检查元素是否在iframe
中,只需检查网站元素并寻找包含<iframe>
的标记。
在研究了如何解决此问题后,我使用以下代码解决了我的问题。
iframe = browser.find_element_by_xpath("//iframe[@name='frame2']")
browser.switch_to_frame(iframe)
browser.find_element_by_xpath("//select[@name='department']")
再次感谢盖伊!