Выпадающий выбор в Python Selenium с ng-моделью - PullRequest
0 голосов
/ 10 декабря 2018

Моя веб-страница имеет следующий атрибут для поля выбора, и я хочу выбрать первый вариант как Все категории

<select ng-model="abc" ng-change="abc(abc)" class="ng-valid ng-dirty ng-valid-parse ng-touched ng-not-empty" style="">
                <option disabled="" value="" selected="selected">Select a category...</option>
                <option value="All Category">All Category</option>

В любом случае я могу найти элемент по ng-модели= "abc" или class и выберите опцию "All category" из выпадающего списка?

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

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

  • Использование CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select.ng-valid.ng-dirty.ng-valid-parse.ng-touched.ng-not-empty[ng-model='abc']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select.ng-valid.ng-dirty.ng-valid-parse.ng-touched.ng-not-empty[ng-model='abc'] option[value='All Category']"))).click()
    
  • Использование XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//select[@class='ng-valid ng-dirty ng-valid-parse ng-touched ng-not-empty' and @ng-model='abc']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//select[@class='ng-valid ng-dirty ng-valid-parse ng-touched ng-not-empty' and @ng-model='abc']//option[@value='All Category']"))).click()
    
0 голосов
/ 10 декабря 2018

Вы можете использовать xpath для поиска элемента:

element = driver.find_element_by_xpath("//option[@value='All Category']")

Подробнее о xpath можно прочитать на документах .

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