Драйвер Selenium Chrome: функция JavaScript при нажатии.элемент не виден или ничего не происходит - PullRequest
0 голосов
/ 17 ноября 2018

Итак, я работаю над сценарием, который автоматизирует генерацию токенов VMWare Airwatch для MDM. Он работал, но они обновили консоль сервера / Airwatch, и эта функция javascript onclick сломала его. Я уже просмотрел различные форумы и посты, и мне не повезло заставить его работать Если у меня есть селен, найти элемент и .click () на нем, я получаю не видимую / неинтерактивную ошибку. В настоящее время у меня есть:

addButton=driver.find_element_by_css_selector("a.add.profile.small")
webdriver.ActionChains(driver).move_to_element(addButton).perform().click(addButton)

И ошибок не возникает, но ничего не происходит.

При ручном наведении курсора мыши на кнопку вместо указателя меняется цвет руки, а цвет фона кнопки меняется.

Вот фрагмент свойств элемента:

        <a class="add profile small" onclick="F5_r2u();F5_Event_common(event);
    try{return(eval(F5_Invoke_eval_event(null,F5_jsBody(function(){addTagRow(this);
        }))))}finally{try{F5_Event_finally(event)}catch(e){}}">Add</a>

selector: #\31 34364e7_Tag_Plural > a
xpath: //*[@id="134364e7_Tag_Plural"]/a

Любой совет?

Я уверен, что мне нужно навести курсор на кнопку Selenium, затем щелкнуть по ней или выполнить javascript. Не уверен, как это сделать, хотя.

Снимок экрана кнопки добавления

1 Ответ

0 голосов
/ 17 ноября 2018

при переключении с вкладки User на Tags необходимо подождать, пока не появится кнопка ADD

# click tab Tags
tabTags = driver.find_element_by_css_selector('tab.tags.selector').click()
# wait until visible
addButton = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'a.add.profile.small')))
addButton.click()

с использованием ActionChains, может быть, вот так

tabTags = driver.find_element_by_css_selector('tab.tags.selector')
addButton = driver.find_element_by_css_selector("a.add.profile.small")

actions = webdriver.ActionChains(driver)
actions.click(tabTags)
actions.click(addButton)
actions.perform()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...