如何使用 selenium web 驱动程序访问当前选项卡中新打开的小选项卡 python

How to access newly opened small tab in the current tab using selenium web driver python

我点击了下面的登录按钮 link,它在同一个 window 中打开了一个小选项卡。我想访问当前的小选项卡并填写信息。 url:https://www.tajawal.ae/en 请建议我如何使用 python selenium webdriver

我检查了你分享的URL,小的tab/web弹出窗口既没有出现在新的框架中也没有出现在新的window中,所以你不需要做[=25] =] 开关。您可以简单地访问弹出元素

In-case,如果您曾尝试在小弹出窗口中与 'email' 输入框进行交互,如果没有成功,请查看我下面的回答。

您有 2 个具有相同名称(属性名称)的电子邮件输入框 - “电子邮件”,一个在弹出窗口中,另一个在订阅时事通讯部分的同一页面中。如果您曾尝试在弹出窗口的 电子邮件 输入框中输入内容,它就会进入时事通讯部分。 因此要在弹出的电子邮件输入框中正确输入,请使用 xpath --> (//input[@name='email'])[2]

将字符序列发送到网站 EmailPassword 字段 https://www.tajawal.com/en you need to induce for the element_to_be_clickable() and you can use either of the following :

  • 使用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
    
  • 浏览器快照: