Выбор нескольких вариантов из выпадающего меню с использованием селена в Python - PullRequest
0 голосов
/ 30 августа 2018

Пробовал поиск, но не нашел никаких рабочих решений для этого. У меня есть раскрывающееся меню, в котором я хочу выбрать несколько вариантов одновременно:

<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 Ответ

0 голосов
/ 30 августа 2018

Как и в ручном режиме, если нам нужно выбрать множественные значения из опций Multi, выпадающий вниз, то мы должны выбрать его, нажав Control.

Точно так же, вы должны автоматизировать его, нажав Control для нескольких значений.

Пример со ссылкой на ваш случай:

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

Все, что вам нужно сделать, это контролировать привязку клавиш, чтобы выбрать несколько значений. Пожалуйста, обратите внимание: Вы можете обрабатывать контрольный щелчок несколькими способами. Ссылка: Нажмите здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...