Как подтвердить выбор радиокнопки, если кнопка имеет 2 пути x? - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь создать оператор if / else, используя Selenium в Python, где, если переключатель еще не выбран, его нужно нажать. В противном случае следует напечатать, что кнопка уже выбрана.

Приведенный ниже синтаксис не возвращает ошибок, но он все равно нажимает кнопку каждый раз, независимо от того, выбрана она или нет.

selectallfive = driver.find_element_by_xpath('//a[contains(text(),"Select All")]')
if selectallfive.is_selected():
    print('already selected')
else:
    selectallfive.click()

После проверки элемента кнопки я понял, что у кнопки есть 2 xpaths - один, когда кнопка уже нажата //a[@class='checked'], и один, когда кнопка не отмечена //a[contains(text(),'Select All')]. Я подозреваю, что мне может понадобиться преобразовать xpath, используемый в моем операторе if / else, но я не уверен, как go об этом в Selenium Python.

1 Ответ

0 голосов
/ 14 марта 2020

Вы можете получить список элементов, выбрав его по нажатому состоянию xpath. Если размер списка больше 0, это означает, что элемент присутствует, и установлен флажок, а если размер равен нулю, это означает, что элемент отсутствует, а затем вам нужно нажать на элемент, выбрав его по не нажал состояние xpath.

Вы можете сделать это следующим образом:

# Fetching the list of element with checkbox clicked xpath
clicked_element = driver.find_elements_by_xpath("//a[@class='checked']")

# Checking if its present or not
if len(clicked_element) == 0:
    # Checkbox is not clicked, so click on the element
    driver.find_element_by_xpath("//a[contains(text(),'Select All')]").click()
else:
    # Element is already selected
    print('already selected')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...