Перейти к содержимому

Фотография

Не нажимается radio button

selenium webdriver

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 deth

deth

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 15 марта 2019 - 10:47

Добрый день.
Столкнулся с проблемой, на странице чек аута не нажимается радио кнопка (кнопок на странице 4).
Пробовал обращаться к элементу по id и xpath, но ничего не происходит. Кнопка не в iframe, страница генерируется с помощью javascript.
Помогите пожалуйста, второй день мучаюсь. 

 

Вот часть html страницы с кнопками:

	<tbody>
		<tr>
			<td>
				<input type="radio" id="ID_DELIVERY_ID_41" name="DELIVERY_ID" value="41" checked="">
				<label for="ID_DELIVERY_ID_41" onclick="BX('ID_DELIVERY_ID_41').checked=true; submitForm();">
				</label>
			</td>
			<td>
				<label for="ID_DELIVERY_ID_41" onclick="BX('ID_DELIVERY_ID_41').checked=true; submitForm();">
				<span class="title">Курьерская доставка</span>
				</label>
			</td>
		</tr>
		<tr>
			<td>
				<input type="radio" id="ID_DELIVERY_ID_43" name="DELIVERY_ID" value="43">
				<label for="ID_DELIVERY_ID_43" onclick="BX('ID_DELIVERY_ID_43').checked=true; submitForm();"></label>
			</td>
			<td>
				<label for="ID_DELIVERY_ID_43" onclick="BX('ID_DELIVERY_ID_43').checked=true; submitForm();">
				<span class="title">Пункт самовывоза</span>
				</label>
			</td>
		</tr>
	</tbody>
</table>

Мой selenium код который я вводил:

driver.find_element_by_id("ID_DELIVERY_ID_41").click()
driver.find_element_by_xpath("(//input[@id='ID_DELIVERY_ID_41'])").click()
driver.find_element_by_xpath("(/html[1]/body[1]/section[1]/div[1]/section[1]/div[1]/form[1]/div[1]/div[2]/div[1]/div[1]/table[1]/tbody[1]/tr[1]/td[1]/input[1])").click()







Вот такую ошибку выдает мне selenium:

selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable

 


  • 0

#2 deth

deth

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 15 марта 2019 - 11:07

Попробовал внести запись в поле:

driver.find_element_by_id("CITY").send_keys(u"г Санкт-Петербург")

После чего selenium выдал ошибку:

selenium.common.exceptions.WebDriverException: Message: unknown error: Element <input type="text" value="г Санкт-Петербург" name="ORDER_PROP_11" id="CITY" autocomplete="off">
 is not clickable at point (383, 12). Other element would receive the click: <div class="wrap">...</div>

  • 0

#3 DReeborn

DReeborn

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • Город:Владивосток

Отправлено 17 марта 2019 - 23:31

Самое простое, что могу посоветовать, исходя из "страница генерируется с помощью javascript", влепить пару ожиданий в код. Драйвер очень быстро выполняет шаги и спокойно может успеть вперёд планеты всей.

Из сложного стоит посмотреть который из элементов обрабатывает клик.


  • 0

#4 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 18 марта 2019 - 10:24

У Вас onclick не на инпуте, а на лейбле.

При этом, сама отметка на радиобаттоне тоже ставится этим же onclick'ом (<label for="ID_DELIVERY_ID_41" onclick="BX('ID_DELIVERY_ID_41').checked=true; submitForm();">).

 

Попробуйте кликать по '#ID_DELIVERY_ID_41+label' (cssLocator).

Либо по '//*[@id='ID_DELIVERY_ID_41']/../label]' (xpath).

Или '//*[@id='ID_DELIVERY_ID_41']/following-sibling::label]' (xpath)


  • 1



Темы с аналогичным тегами selenium, webdriver

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных