簡體   English   中英

Selenium Chrome驅動程序:單擊功能的Javascript。 元素不可見或沒有任何反應

[英]Selenium Chrome Driver: Javascript on click function. element not visible or nothing happens

因此,我正在研究一個腳本,該腳本可自動為MDM生成VMWare的Airwatch令牌。 它正在運行,但是他們更新了服務器/ 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。 雖然不知道如何做到這一點。

添加按鈕的屏幕截圖

當您從“ User Tags切換到“ 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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM