Невозможно установить флажок, используя селен - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь установить флажок с помощью Selenium. Это элемент флажка.

<div class="ams-item-text ng-binding" ng-bind-html="amssh.create_label(item)" ng-click="toggle_check_node(item)" role="button" tabindex="0">all contract signed</div>

Я непосредственно копирую x-path этого элемента и написал следующий код:

browser.find_element_by_xpath('//*[@id="advancedcontents"]/div/div/div[2]/div/div[1]/div[1]/div/div/div[2]/div[2]/div/div[2]/div[3]/div[2]').click()

Но это никогда не произойдет установите флажок, который я хотел, но установите флажок ниже, который выглядит следующим образом:

<div class="ams-item-text ng-binding" ng-bind-html="amssh.create_label(item)" ng-click="toggle_check_node(item)" role="button" tabindex="0">future</div>

В чем могут быть проблемы? Я пробую элемент checkbox или текстовый элемент (также активируемый нажатием), но оба они не работают.

Ответы [ 3 ]

1 голос
/ 08 апреля 2020

Попробуйте следующий код:

    wait = WebDriverWait(browser, 20)
    wait.until(EC.element_to_be_clickable(By.XPATH, "//div[contains(.,'all contract signed')]")).click()

Примечание : добавьте ниже импорта в ваше решение

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
1 голос
/ 08 апреля 2020

Чтобы щелкнуть по элементу Dynami c, введите WebDriverWait () и visibility_of_element_located () и следующую опцию xpath.

WebDriverWait(browser,10).until(EC.visibility_of_element_located((By.XPATH,"//div[@class='ams-item-text ng-binding' and text()='all contract signed']"))).click()

Вам необходимо импортировать следующие библиотеки.

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
0 голосов
/ 07 апреля 2020

"ams-item-text ng-binding" browser.find_element_by_xpath ('// * [@ id = "advancedcontents"] / div / div / div [2] / div / div [1] / div [1] /div/div/div[2]/div[2]/div/div[2]/div[3]/div[2]').click()

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