簡體   English   中英

如何在 selenium 中右鍵單擊並單擊將圖像另存為 python

[英]How to right click in selenium and click save image as in python

我正在嘗試用鼠標右鍵單擊,然后在 selenium python 中單擊另存為圖像。 我能夠使用以下方法執行右鍵單擊,但是執行右鍵單擊的下一個操作不再起作用。 我怎么解決這個問題?

from selenium.webdriver import ActionChains 
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
driver.get(url)

    # get the image source
img = driver.find_element_by_xpath('//img')
actionChains = ActionChains(driver)
actionChains.context_click(img).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ARROW_DOWN).send_keys(Keys.RETURN).perform()

您可以使用 pyautogui 執行相同的功能。 假設您使用的是 Windows。 -->pyautogui.position() (187, 567) #打印當前光標位置

-->pyautogui.moveTo(100, 200)#移動到需要右鍵單擊的位置。

-->pyautogui.click(button='right')

-->pyautogui.hotkey('ctrl', 'c') - 鍵盤中的 Ctrl+C(復制快捷鍵)

請參閱以下鏈接了解更多https://pyautogui.readthedocs.io/en/latest/keyboard.html

問題是 send_keys() 方法在創建上下文菜單后,將鍵發送到窗口,而不是菜單。 因此,無法訪問菜單項。

我在下載在網頁中創建的畫布時遇到了類似的問題。 最后,我能夠下載執行 javascript 的圖像。 我創建了一個下載元素來管理圖像。 由於它是一個畫布,我之前必須執行 toDataURL 方法。 這是我的python代碼:

script_js = 'var dataURL = document.getElementsByClassName("_cx6")[0].toDataURL("image/png");' \
    'var link = document.createElement("a"); ' \
    'link.download = "{}_{}";' \
    'link.href = dataURL;' \
    'document.body.appendChild(link);' \
    'link.click();' \
    'document.body.removeChild(link);' \
    'delete link;'.format( n, prefijo_nombre_archivo, sufijo_nombre_archivo )
driver.execute_script(script_js)

我希望它可以幫助!

您必須首先移動到要執行上下文單擊的元素

from selenium.webdriver import ActionChains 
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
driver.get(url)
    
# get the image source
img = driver.find_element_by_xpath('//img')
actionChains = ActionChains(driver)
    actionChains.move_to_element(img).context_click().send_keys(Keys.ARROW_DOWN).send_keys(Keys.ARROW_DOWN).send_keys(Keys.RETURN).perform()

暫無
暫無

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

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