在Python中使用Selenium选择嵌套的iframe

时间:2016-01-20 18:38:42

标签: python selenium iframe nested

我正在尝试在Indeed上自动填充Easyily Apply作业应用程序。 Here是使用“轻松应用”方法的“确实”作业应用程序示例。我已经尝试了每种方法来导航嵌套的iframe;但是,我找不到一种有效的方法。我甚至发现之前已经问过这个问题,不幸的是,问题的解决方案对我不起作用。下面是我现在的代码:

from selenium import webdriver

driver = webdriver.Firefox()

driver.get('indeed_url_goes_here')

driver.find_element_by_class_name('indeed-apply-button').click()
driver.switch_to_frame(driver.find_element_by_xpath('/html/body/iframe'))
driver.switch_to_frame(driver.find_element_by_xpath('//*[@id="indeedapply-modal-preload-iframe"]'))
driver.find_element_by_class_name('applicant.name')

2 个答案:

答案 0 :(得分:0)

首先,该元素没有类名 - 它具有常规名称和ID,因此请使用driver.find_element_by_namedriver.find_element_by_id

答案 1 :(得分:0)

找到第一个父Uncaught ReferenceError: thos is not defined并切换到它,然后按索引到嵌套框架。

完整的工作代码:

iframe

从弹出窗口打印作业标题:from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Firefox() driver.get("http://www.indeed.com/viewjob?jk=2e3d019aa34a2801&q=bartender&tk=1a9g51n08a3iof6h&from=web&advn=5333586156877432&sjdu=UvkB_mgi5f7NyMagFcTHP0E6zA3mclLGHWb8Kte-0FV3cY2ZuZvj3LUvh8wnnxrqeYWG3HpvTXBK3G4htWfwgfQeMa0N1Tds6VxYb4V3Vlg&pub=4a1b367933fd867b19b072952f68dceb") driver.find_element_by_class_name('indeed-apply-button').click() wait = WebDriverWait(driver, 10) frame = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "iframe[name$=modal-iframe]"))) driver.switch_to.frame(frame) driver.switch_to.frame(0) print(driver.find_element_by_css_selector("h1.jobtitle").text)