Как получить доступ к недавно открытой небольшой вкладке на текущей вкладке с помощью веб-драйвера selenium python - PullRequest
0 голосов
/ 04 августа 2020

Я нажал кнопку входа по ссылке ниже, и в том же окне открылась небольшая вкладка. я хочу получить доступ к текущей небольшой вкладке и заполнить информацию. url: https://www.tajawal.ae/en Пожалуйста, подскажите, как это сделать с помощью python selenium webdriver

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Чтобы отправить последовательность символов в поле Электронная почта и Пароль на веб-сайте https://www.tajawal.com/en, вам необходимо вызвать WebDriverWait для element_to_be_clickable(), и вы можете использовать любую из следующих Стратегий локатора :

  • Использование XPATH:

    driver.get("https://www.tajawal.com/en")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@data-testid='Header__SignInButton']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//label[text()='Email']//following::input[@name='email']"))).send_keys("paul@paul.paul")
    driver.find_element_by_xpath("//label[text()='Password']//following::input[@name='password']").send_keys("paul@paul.paul")
    
  • Примечание : необходимо добавить следующие импорты:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • Снимок браузера:

таджаваль

0 голосов
/ 04 августа 2020

Я проверил URL-адрес, которым вы поделились, небольшая вкладка / всплывающее окно не отображается ни в новом фрейме, ни в новом окне, поэтому вам не нужно переключать фрейм / окно. вы можете просто получить доступ к всплывающим элементам

В случае, если вы пытались взаимодействовать с полем ввода «электронная почта» в небольшом всплывающем окне, и если это не сработало, см. мой ответ ниже.

У вас есть 2 поля ввода электронной почты с одинаковым именем (именем атрибута) - «электронная почта», одно во всплывающем окне, другое на той же странице в разделе подписки на рассылку новостей. Если вы пытались что-то ввести во всплывающем поле ввода электронная почта , он должен был быть введен в раздел рассылки. Чтобы правильно ввести в поле ввода электронной почты всплывающего окна, используйте xpath -> (// input [@ name = 'email']) [2]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...