如何使用Selenium和python在程序之间切换?

时间:2019-08-23 17:17:02

标签: python selenium web-scraping selenium-chromedriver

我有一个带有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。

1 个答案:

答案 0 :(得分:0)

Mac和Windows具有键盘快捷键,可以帮助在窗口之间进行切换。

elem.send_keys(Keys.ALT, Keys.ESCAPE) #for Windows
elem.send_keys(Keys.COMMAND, '~') # for Mac

您还可以使用pyautogui并使用热键功能。只需使用上面显示的相同热键即可。

编辑:

elem必须是已定义的webdriver.element。只需按id,类名,xpath等找到任何Web元素,然后在该元素上运行send_keys方法即可,如上所示。