如何使用Python Selenium从Bootstrap下拉菜单中选择元素?

时间:2019-05-14 08:29:49

标签: python-3.x selenium-webdriver bootstrap-4 dropdownbox

我在使用Selenium Python选择Bootstrap DropDown时遇到问题。

我的代码没有元素ID和元素名称。通常,我们可以通过ID或名称找到它。因此,我尝试使用find_element_by_xpath

我发现引导DropDown无法通过选择功能来选择。

我必须选择一个Department字段。该部门具有财务,人力资源和信息技术的价值。

这是我的代码:

此代码适用于当我单击“部门”字段时:

<input type="text" readonly="readonly" autocomplete="off" placeholder="Select" class="el-input__inner">

此代码用于部门的价值:

<li data-v-3f24b47c="" class="el-select-dropdown__item"> 
<span>Finance</span></li>

<li data-v-3f24b47c="" class="el-select-dropdown__item"><span>Human Resources</span></li>

<li data-v-3f24b47c="" class="el-select-dropdown__item selected"><span>Information Technology</span></li>

请忠告。

2 个答案:

答案 0 :(得分:0)

Selenium的Select对象应该与HTML Select标签一起使用,如果您没有任何Select标签,则需要将下拉占位符和嵌套条目视为单独的对象,并按以下方式进行访问:< / p>

driver.find_element_by_xpath("//input[@placeholder='Select']").click()
driver.find_element_by_xpath("//span[text()='Finance']").click()
#etc

演示(假定为https://getbootstrap.com/docs/4.0/components/dropdowns/#single-button-dropdowns页)

driver.get('https://getbootstrap.com/docs/4.0/components/dropdowns/')
driver.execute_script("arguments[0].scrollIntoView(true);",
                      driver.find_element_by_xpath("//a[@href='#single-button-dropdowns']"))
driver.find_element_by_id('dropdownMenuButton').click()

有关使用XPath和朋友的locating DOM elements的更多信息:

答案 1 :(得分:0)

您可以使用CSS选择器

  
    
      

driver.find_element_by_css_selector