【问题标题】:selenium RC (python) having trouble with nested iframesselenium RC(python)在嵌套 iframe 时遇到问题
【发布时间】:2015-10-14 19:35:41
【问题描述】:

我正在尝试在 python 中导航 selenium 以将文本发送到 Indeed 网站示例测试页面上的输入字段(单击应用以查看包含输入字段名称、电话、电子邮件、求职信等的表单)

http://www.indeed.ca/cmp/HD-GROUP/jobs/Regional-Representative-a72711272aba6984?sjdu=vQIlM60yK_PwYat7ToXhk40tHzG2V8PFLUkYNu3gUARzMPxmzfYNIZhnUOBL3fqJ0waO2mcYR2CrxwZY5aM-JSDuEjnVcDU8mqRWS8wbyaI

我意识到我需要告诉 selenium 切换到那个 iframe 问题是实际上有两个。

我有以下 XML 路径:

//*[@id="indeed-ia-1444850868596-1-modal-iframe"] <-- first iframe

/html/body/iframe <-- second iframe

//*[@id="apply_form"]  <-- form 

输入:

//*[@id="form_container"]/div[2]/div[1]/div[1]/div[1]
//*[@id="form_container"]/div[2]/div[1]/div[1]/div[1]/div[1]/div
//*[@id="phone_container"]
//*[@id="form_container"]/div[2]/div[1]/div[1]/div[1]/div[2]

我如何把这些东西放在一起?

【问题讨论】:

    标签: jquery python xml selenium iframe


    【解决方案1】:

    这里的想法是单击“立即应用”按钮,等待iframe 出现,然后切换到它,然后切换到内部iframe,找到输入框并发送键。工作示例:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    
    driver = webdriver.Chrome()
    driver.get("http://www.indeed.ca/cmp/HD-GROUP/jobs/Regional-Representative-a72711272aba6984?sjdu=vQIlM60yK_PwYat7ToXhk40tHzG2V8PFLUkYNu3gUARzMPxmzfYNIZhnUOBL3fqJ0waO2mcYR2CrxwZY5aM-JSDuEjnVcDU8mqRWS8wbyaI")
    
    driver.find_element_by_css_selector("a.indeed-apply-button").click()
    
    wait = WebDriverWait(driver, 20)
    frame = wait.until(EC.presence_of_element_located((By.TAG_NAME, "iframe")))
    
    driver.switch_to.frame(frame)
    driver.switch_to.frame(0)
    
    driver.find_element_by_id("applicant.name").send_keys("test")
    

    【讨论】:

      猜你喜欢
      • 2011-04-13
      • 1970-01-01
      • 2019-03-02
      • 2014-05-07
      • 1970-01-01
      • 2013-12-31
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多