使用Python Selenium选择一个文本框,更改框架

使用Python Selenium选择一个文本框,更改框架,python,selenium,Python,Selenium,警告:完全是新手 我正在尝试为网站上的“登录ID”选择文本框: 我正在使用Python 3.7和Selenium。我试图检查textbox元素以找到CSS选择器。这会导致错误。我知道我需要切换我的“框架”,但我无法很好地阅读网站后端编码以找到正确的框架名称 from selenium import webdriver browser = webdriver.Chrome(executable_path=driver_path, chrome_options=option) Login_Id_T

警告:完全是新手

我正在尝试为网站上的“登录ID”选择文本框:

我正在使用Python 3.7和Selenium。我试图检查textbox元素以找到CSS选择器。这会导致错误。我知道我需要切换我的“框架”,但我无法很好地阅读网站后端编码以找到正确的框架名称

from selenium import webdriver
browser = webdriver.Chrome(executable_path=driver_path, chrome_options=option)
Login_Id_TextBox = browser.find_element_by_id('LoginId')
有人能帮我找到正确的框架或指导我找到一个好的来源来了解更多关于它们的信息吗?

要在网站登录ID的文本框中发送一个字符序列,因为所需的元素在
中,因此您必须:

  • 将所需的
    帧的WebDriverWait设置为可用,并将其切换为可用()
  • 将所需
    元素的WebDriverWait设置为可单击()
  • 您可以使用以下任一选项:

    • CSS\u选择器

      driver.get('https://www.schwab.com/public/schwab/nn/login/login.html&lang=en')
      WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe#loginIframe")))
      WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.form-control#LoginId"))).send_keys("averagejoe1080")
      
    • XPATH

      driver.get('https://www.schwab.com/public/schwab/nn/login/login.html&lang=en')
      WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='loginIframe']")))
      WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='form-control' and @id='LoginId']"))).send_keys("averagejoe1080")
      
在这里,您可以找到关于


下面是满足您需求的简单代码,我成功地测试了它

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.schwab.com/public/schwab/nn/login/login.html&lang=en')
driver.switch_to_frame("loginIframe")
Login_Id_TextBox = driver.find_element_by_id('LoginId')