簡體   English   中英

右鍵單擊-Selenium-Python

[英]Right Click -Selenium - Python

我有點努力尋找執行右鍵單擊的正確方法。

這是我的代碼示例:

click_Menu = driver.find_element_by_id("Menu")
print(click_Menu.text)
action.move_to_element(click_Menu)
action.context_click(on_element=click_Menu)
action.perform()

所有的導入都在那里。並且print(click_Menu.text ) => 返回“Menu”,所以元素已經找到

錯誤:

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

我試圖添加time.sleep()但結果是一樣的。

請問有什么想法嗎?

您只需要傳遞context_click()中的元素,如下所示:

context_click(click_Menu)

您的有效代碼行將是:

action.context_click(click_Menu)

優化你的代碼塊:

click_Menu = driver.find_element(By.ID, "Menu")
ActionChains(driver).move_to_element(click_Menu).context_click(click_Menu).perform()

此代碼將幫助您解決問題。

from selenium.webdriver import ActionChains

識別源元素

click_Menu= driver.find_element_by_xpath("your path")

或者

click_Menu= driver.find_element_by_id("Menu")

動作鏈 object 創建

action = ActionChains(driver)

右鍵操作然后執行

action.move_to_element(click_Menu).perform()
action.context_click(click_Menu).perform()

克服許多此類錯誤的簡單方法是添加某種延遲:

import time
time.sleep(2) 

找到解決方案。

我使用的是舊的 ActionChains object。 所以我通過創建一個新的來重新實例化它。

action1 = ActionChains(driver)

暫無
暫無

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

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