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

2024-09-28 22:38:22 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: https信息url链接wwwselenium标签按钮
2条回答

要将字符序列发送到网站https://www.tajawal.com/en中的电子邮件密码字段,您需要为element_to_be_clickable()引入WebDriverWait,并且可以使用以下任一Locator Strategies

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

tajawal

我检查了您共享的URL,小选项卡/web弹出窗口既不会出现在新框架中,也不会出现在新窗口中,因此您不需要进行框架/窗口切换。您可以简单地访问弹出窗口元素

在这种情况下,如果您试图与小弹出窗口中的“电子邮件”输入框进行交互,并且如果它不起作用,请参阅下面的我的答案

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

相关问题 更多 >