1

因此,我正在编写一个脚本,该脚本可以自动为 MDM 生成 VMWare 的 Airwatch 令牌。它正在运行,但他们更新了服务器/Airwatch 控制台,这个 javascript onclick 函数破坏了它。我已经搜索了各种论坛和帖子,但没有运气让它发挥作用。如果我有 selenium find 元素和 .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。不知道该怎么做。

添加按钮的屏幕截图

4

1 回答 1

0

当您从选项卡切换UserTags它需要等到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()
于 2018-11-17T02:03:03.867 回答