我有这个。这是一个 Python 程序,用于自动从我们的实习生公司网站下载文档。我使用了 Webdriver Chrome。
为此,Python 程序打开第一个窗口 (0),提供文档编号,然后打开第二个窗口 (1) 以单击“打印”。为了确保系统将与正确的窗口进行交互,我使用了 switch_to_window()。
问题是每次调用函数switch_to_window()时,它都会窃取焦点,如果我(例如)在 Outlook 中输入电子邮件,它将窃取焦点,我的输入将进入文档编号,然后,整个 Selenium 肯定会停止,因为无法找到文档编号,因为它是错误的。
问题:有没有办法在不窃取焦点的情况下更改窗口?
def csv_print():
global browser
global h
numm=0
numm_1=0
while numm<h:
kalknum= browser.find_element_by_id("uc_1")
searchkalk=browser.find_element_by_id("uc_2")
kalknum.send_keys(user_entries[numm].get())
searchkalk.click()
fenetre.after(2000)
window_before = browser.window_handles[0]
open_kalk=browser.find_element_by_id("uc_12")
open_kalk.click()
fenetre.after(5000)
window_after = browser.window_handles[1]
browser.switch_to_window(window_after)
element_to_hover_over=browser.find_element_by_id('uc_14')
hover = ActionChains(browser).move_to_element(element_to_hover_over)
hover.perform()
element_to_hover_over2=browser.find_element_by_id('uc_15')
hover2 = ActionChains(browser).move_to_element(element_to_hover_over2)
hover2.perform()
csv_dwd=browser.find_element_by_id("uc_16")
csv_dwd.click()
fenetre.after(5000)
element_to_hover_over3=browser.find_element_by_id('uc_17')
hover3 = ActionChains(browser).move_to_element(element_to_hover_over3)
hover3.perform()
kalk_close=browser.find_element_by_id("uc_18")
kalk_close.click()
fenetre.after(5000)
browser.close()
browser.switch_to_window(window_before)
kalknum2= browser.find_element_by_id("uc_1")
kalknum2.clear()
fenetre.after(1)
numm+=1
numm_1+=1
谢谢 !