Python - селен - AngularJS выпадающие, как их щелкнуть? - PullRequest
0 голосов
/ 13 февраля 2019

Я соскребаю его сайт.Создать аккаунт.Ниже приведен URL-адрес

https://sjobs.brassring.com/TGnewUI/Search/Home/Home?partnerid=25222&siteid=5011&noback=1&fromSM=true#CreateAccount

После перехода на этот сайт, нажмите "Dont have an account yet?" и нажмите "Agree" на следующей странице.

Там у меня есть безопасностьвопросы для заполнения.Для этого я написал следующий скрипт:

def findxpath_AddKey(xpath, key1, id, key2):
    element = browser.find_element_by_xpath(xpath)
    element.click()
    browser.execute_script("arguments[0].setAttribute('aria-activedescendant',{})".format(key1),element)
    span = browser.find_element_by_id(id)
    browser.execute_script("arguments[0].innerText = {}".format(key2), span)
    browser.execute_script("arguments[0].setAttribute('class',\"ui-selectmenu-button ui-button ui-widget ui-selectmenu-button-closed ui-corner-all\")",element)

findxpath_AddKey('//*[@id="selectSecurityQuestion1-button"]',"'ui-id-3'", 'selectSecurityQuestion1-button_text', "'Where is your favorite vacation spot?'")

Вышеописанный процесс повторяется для других вопросов безопасности и нажмите "continue".Но сайт выдает ошибки, говоря, что для заполнения секретных вопросов.

The error in the page

1 Ответ

0 голосов
/ 13 февраля 2019

Я не уверен, решит ли это вашу проблему или нет, но я делаю знаю, что иногда ручное редактирование внутреннего текста формы не регистрируется как заполненная форма - иэто то, что, как я полагаю, вы делаете, используя setAttribute.

Вместо setAttribute, попробуйте использовать метод драйвера send_keys.Это выглядело бы примерно так:

form_field = browser.find_element_by_id('ID_OF_FORM_FIELD')
form_field.send_keys('Answer to security question')

Вам также не нужно использовать id, чтобы найти поле.Вы можете использовать find_element_by_xpath или любой другой идентификатор, который вам придет в голову.

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