Вопрос по python, webdriver – Обрабатывать несколько окон в Python

35

Я работаю надselenium automation project используя Python.

Я столкнулся с проблемой, которая обрабатывает несколько окон браузера.

Сценарий выглядит следующим образом. Когда я нажимаю ссылку на домашней странице, открывается новое окно. В открывшемся окне я не могу выполнять никаких действий, потому что все еще фокусируюсь на веб-драйвере домашней страницы.

Кто-нибудь может показать мне, как изменить фокус с фонового окна на недавно открытое окно?

Возможное решениеdriver.switch_to.window(), но для этого требуется имя окна. Как узнать имя окна? Если это неправильный способ сделать это, кто-нибудь может привести несколько примеров кода для выполнения этого действия?

Ваш Ответ

4   ответа
9

Error: User Rate Limit Exceededwindow.open()Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

# Opens a new tab
self.driver.execute_script("window.open()")

# Switch to the newly opened tab
self.driver.switch_to.window(self.driver.window_handles[1])

# Navigate to new URL in new tab
self.driver.get("https://google.com")
# Run other commands in the new tab here

Error: User Rate Limit Exceeded

# Switch to original tab
self.driver.switch_to.window(self.driver.window_handles[0])

# Close original tab
self.driver.close()

# Switch back to newly opened tab, which is now in position 0
self.driver.switch_to.window(self.driver.window_handles[0])

Error: User Rate Limit Exceeded

# Close current tab
self.driver.close()

# Switch back to original tab
self.driver.switch_to.window(self.driver.window_handles[0])

Надеюсь это поможет.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
3

Error: User Rate Limit ExceededswitchToError: User Rate Limit Exceeded

driver.switch_to.window("windowName")

<a href="somewhere.html" target="windowName">Click here to open a new window</a>

Error: User Rate Limit ExceededswitchTo().window()Error: User Rate Limit Exceeded

for handle in driver.window_handles:
    driver.switch_to.window(handle)
16

window_handlesError: User Rate Limit Exceeded

этотError: User Rate Limit Exceeded

25

Error: User Rate Limit Exceededwindow_handlesError: User Rate Limit Exceededswitch_to_window метод.

Прежде чем перейти по ссылке, сначала сохраните дескриптор окна как

window_before = driver.window_handles[0]

Error: User Rate Limit Exceeded

window_after = driver.window_handles[1]

Error: User Rate Limit Exceeded

driver.switch_to_window(window_after)

Error: User Rate Limit Exceeded

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

class GoogleOrgSearch(unittest.TestCase):

     def setUp(self):
         self.driver = webdriver.Firefox()

    def test_google_search_page(self):
         driver = self.driver
         driver.get("http://www.cdot.in")
         window_before = driver.window_handles[0]
         print window_before
         driver.find_element_by_xpath("//a[@href='http://www.cdot.in/home.htm']").click()
         window_after = driver.window_handles[1]
         driver.switch_to_window(window_after)
         print window_after
         driver.find_element_by_link_text("ATM").click()
         driver.switch_to_window(window_before)


    def tearDown(self):
    self.driver.close()

if __name__ == "__main__":
unittest.main()
Error: User Rate Limit ExceededIndexError: list index out of rangeError: User Rate Limit Exceededwindow_after = browser.window_handles[1]Error: User Rate Limit Exceededstackoverflow.com/questions/45354850/…
Error: User Rate Limit Exceeded

Похожие вопросы