Python Selenium Нажатие на кнопку переключателя JavaScript - PullRequest
0 голосов
/ 12 октября 2018

Я нахожусь в конце своего сценария, и это должна быть последняя страница, через которую я должен пройти, и я застрял.Я потратил 3 часа в разных комбинациях и разных методах, пытаясь загрузить элементы.

страница сильно javascript, поэтому, когда я пытаюсь получить исходный код страницы, она дает мне

This page uses frames, but your browser doesn't support them.

Я определил, что в окне есть два кадра, и попытался применить все попытки к обоим кадрам.

Результат, когда я пытаюсь выбрать кадр

**driver.find_element_by_xpath('''//*[@id="three"]/tbody/tr[2]/td/div[2]/a/input''').click()**

error

**Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="three"]/tbody/tr[2]/td/div[2]/a/input"}**

Я также пробовал ниже с или без [0] на всех кадрах, все та же проблема

**driver.find_element_by_xpath('.//input[@type="radio" and @value="05"]')[0].click**

Я пробовал это, но также получаю ту же ошибку

**element = driver.find_element_by_id("reason")**

Ниже приведен скриншот кода в окне инспектора. скриншот инспектора

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

попробуйте сначала переключиться на содержащий кадр:

parent_frame=driver.find_element_by_css_selector('your selector')
driver.switch_to.frame(parent_frame)

#select the button after

Как определить и переключиться на кадр в селеновом веб-драйвере, если кадр не имеет идентификатора

0 голосов
/ 12 октября 2018

Попробуйте с помощью драйвера кликнуть по переключателю

element = driver.find_element_by_xpath("//table[@id="three"]//input[@name="reason"]")
element.click();

или исполнителю javascript

element = driver.find_element_by_xpath("//table[@id="three"]//input[@name="reason"]")
driver.execute_script("arguments[0].click();", element)
...