Ошибки является:Селена, Выбор элемента внутри <span>
Select only works on <select> elements, not on <span>. Trying to accomplish this using PhantomJS & Selenium in Python.
Ближайшим Я пришел, возможно, найти ответ заключается в следующем:
How can i select this span element?
Пытаясь узнать автоматизации Selenium , и вычисляемая работа с Gmail была бы серьезной проблемой. Сейчас мы пытаемся выбрать «Месяц рождения» на этапе создания учетной записи.
Прямо сейчас, пытаясь выбрать по XPath, следующим образом (и то, что приводит к ошибке выше).
select_birthday_month = Select(driver.find_element_by_xpath('//span[@id="BirthMonth"]')
код на странице Gmail является:
<div class="form-element multi-field birthday" id="birthday-form-element">
<fieldset>
<legend><strong id="BirthdayLabel">Birthday</strong></legend>
<label id="month-label" class="month">
<span id="BirthMonthHolder" >
<select id="BirthMonth" name="BirthMonth">
<option value="">Month</option>
<option value="01" >
January</option>
<option value="02" >
February</option>
<option value="03" >
March</option>
<option value="04" >
April</option>
<option value="05" >
May</option>
<option value="06" >
June</option>
<option value="07" >
July</option>
<option value="08" >
August</option>
<option value="09" >
September</option>
<option value="10" >
October</option>
<option value="11" >
November</option>
<option value="12" >
December</option>
</select>
</span>
</label>
Я попытался:
select_birthday_month = driver.find_element_by_xpath('//span[@id="BirthMonth"].click()
(как и некоторые другие ответы StackOverflow предложили при столкновении с этой проблемой). Затем выберите x-путь для значения месяца. Но я получаю ошибку, в которой говорится, что x-path для этого не может быть найден.
Может ли кто-нибудь предложить лучший способ сделать это? Нужно ли сначала щелкнуть элемент? Есть ли хороший способ получить «хитрые» x-пути? Правый щелчок/проверка элемента на хром работает для основных вещей, но при попадании в выпадающие списки - это не разрезает его.
Я никогда не считал отправки ключей для выбора. Удивительная идея, поможет мне в будущем с другими проблемами. Спасибо что нашли время ответить! – brizz
Вы знаете, как я могу это сделать в javascript (или с jquery)? – arieljannai
@arieljannai, да, вы можете использовать 'driver.execute_script ('...')' вы можете запустить jquery, если он находится в области. Взгляните на их документы [здесь] (http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver.execute_script) – Anzel