Selenium Chrome驱动程序:Javascript点击功能.元素不可见或什么也没发生



所以我正在编写一个脚本,该脚本可以自动为MDM生成VMWare的Airwatch令牌。它正常工作,但他们更新了服务器/Airwatch控制台,这个javascript onclick功能破坏了它。我已经搜索了各种论坛和帖子,但没能成功。如果我让selenium找到元素并点击((,我会得到不可见/不可交互的错误。目前,我有:

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。但不知道该怎么做。

添加按钮屏幕截图

当您从选项卡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()

最新更新