воскресенье, 12 апреля 2020 г.

Как переключиться на другую вкладку в Selenium? (Python)



Итак, задача стоит так:

Надо нажать на кнопку в текущем окне. Страница открывается в новой вкладке. Нужно в новой вкладке найти кнопку и нажать на нее.

Делим на части:

1. Нажимаем на кнопку
2. Открывается новая вкладка
3. Переключаемся на новую вкладку
4. Нажимаем на кнопку в новой вкладке


Сам тест:

def test_user_should_be_able_to_play_video(driver):
    first_page.open(driver)
    first_page.click_buton_on_first_page_and_switch_to_new_tab(driver)
    new_page.click_button_on_new_page(driver)
("Click button on first_page")
def click_buton_on_first_page_and_switch_to_new_tab(driver)
    first_page_button = Button(driver, (By.CSS_SELECTOR, first_page_button_locator))
    first_page_button.click()
    window_after = driver.window_handles[1]
    driver.switch_to_window(window_after)

("Click button on new_page")
def click_button_on_new_page(driver):
    new_page_button = Button(driver, (By.CSS_SELECTOR, new_page_button_locator))
    new_page_button.click()
(Button)
class Button:
    def __init__(self, driver, locator):
       self.driver = driver
       self.element_locator = locator
    def wait_for(self, seconds):
       time.sleep(seconds)
def click(self, timeout=30):
        button = WebDriverWait(self.driver, timeout).until(
            expected_conditions.element_to_be_clickable(self.element_locator),
            'Button with locator ' + self.element_locator[1] 
            + ' is not enabled or not visible after timeout 30 seconds'        )
        self.wait_for(0.5)
        button.click()

Комментариев нет:

Отправить комментарий