在 python 中使用 selenium 从下拉菜单中选择多个选项
Posted
技术标签:
【中文标题】在 python 中使用 selenium 从下拉菜单中选择多个选项【英文标题】:Selecting multiple options from drop down menu using selenium in python 【发布时间】:2019-02-04 19:23:35 【问题描述】:尝试搜索,但没有找到任何可行的解决方案。我有一个下拉菜单,我想一次选择多个选项:
<select name="Area" multiple="" size="5" class="sel0"
onchange="opbygQvar('Area',dummyArray,false,true,false)">
<option value="">(blankstil)
</option><option value="1">1 A
</option><option value="2">2 B
</option><option value="3">3 C
</option><option value="4">4 D
</option><option value="5">5 E
</option><option value="6">6 F
</option></select>
试用码:
driver.find_element_by_xpath("//select[@name='Area']/option[text()='1 A']").click()
driver.find_element_by_xpath("//select[@name='Area']/option[text()='2 B']").click()
只选择一个选项,然后将选择更改为另一个选项,而不是选中多个选项。
任何帮助都非常感谢 - 在此先感谢 :)
【问题讨论】:
【参考方案1】:与手动操作一样,如果我们必须从多选项下拉菜单中选择多个值,那么我们必须使用控制单击来选择它。
同样,您必须使用 Control click for Multiple Values 来自动化它。
参考您的案例的示例:
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
element1 = driver.find_element_by_xpath("//select[@name='Area']/option[text()='1 A']")
element2 = driver.find_element_by_xpath("//select[@name='Area']/option[text()='2 B']")
ActionChains(driver).key_down(Keys.CONTROL).click(element1).key_up(Keys.CONTROL).perform()
ActionChains(driver).key_down(Keys.CONTROL).click(element2).key_up(Keys.CONTROL).perform()
您所要做的就是控制键绑定以选择多个值。请注意:您可以通过多种方式处理控制点击。参考帖:Click Here
【讨论】:
嗯 - 由于某种原因它不起作用。问题是 /option[text()='1 A']" 似乎是错误的语法 它不是语法问题,您需要分享异常详细信息以了解它不起作用。 你是对的,我成功了 :-) 错误就在我头上以上是关于在 python 中使用 selenium 从下拉菜单中选择多个选项的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Selenium Webdriver 和 Python 从这个非选择下拉菜单中选择这个元素
无法从 Selenium 和 Python 的下拉菜单中选择
RobotFramework Selenium:如何从多选下拉列表中选择多个选项?
selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等