我有一个带有selenium-crhomedriver的python代码。代码在特定页面上打开一个窗口,在该窗口中下载 excel 文件,稍后代码打开 excel 文件,它转到特定行并从工作表中复制一个值。 我需要返回页面并将从 excel 文件复制的值粘贴到页面上的输入字段中。
我尝试使用 pyautogui 模拟运动,但在某些情况下我有错误,因为有时我打开了 3 个以上的窗口。
这是我的代码:
from selenium import webdriver
import time
import os
import pyautogui
import webbrowser
from selenium.webdriver.common.keys import Keys
path_excel = r"Macro_Boletín_Concursal.xlsm"
url = 'http://www.boletinconcursal.cl/boletin/procedimientos'
chrome_path =r"path"
driver = webdriver.Chrome(chrome_path)
elem = driver.find_element_by_xpath("""//*[@id="rut"]""")
driver.get("http://www.boletinconcursal.cl/boletin/procedimientos")
driver.find_element_by_xpath("""//*[@id="btnRegistro"]/span[2]""").click()
time.sleep(3)
pyautogui.hotkey('win', 'd')
os.popen(path_excel)
time.sleep(7)
pyautogui.hotkey('ctrl', 'c')
在这一部分中,我需要返回页面,稍后执行这部分代码:
elem.send_keys(Keys.CONTROL, 'a') #highlight
elem.send_keys(Keys.CONTROL, 'v') #paste
driver.find_element_by_xpath("""//*[@id="btnBuscarPublicacion"]/span[2]""").click()
然后,我需要一段代码在 excel 文件和 chromedriver 之间移动,或者从 chromedriver 移动到 excel
。Mac 和 Windows 都有键盘快捷键,可以帮助在窗口之间切换。
elem.send_keys(Keys.ALT, Keys.ESCAPE) #for Windows
elem.send_keys(Keys.COMMAND, '~') # for Mac
您也可以使用 pyautogui 并使用热键功能。只需使用与上所示相同的热键即可。
编辑:
elem 必须是已定义的 webdriver.element。只需通过 id、类名、xpath 等找到任何 webelement,并在该元素上运行 send_keys 方法,如上所示。