Python Selenium - как избежать кражи фокуса функцией switch_to_window()?

У меня есть это. Это программа 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

Спасибо !

0 ответов

Другие вопросы по тегам