我正在尝试在iframe中定位元素,但是没有运气。
我认为由于我的代码无法切换到iframe,这就是为什么我无法在其中定位元素的原因。
下面是我的代码。
我尝试过
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '/html/body/iframe')))
driver.find_element_by_name('applicant.name').send_keys('email')
我也尝试过
iframe = driver.find_element_by_xpath('/html/body/iframe')
driver.switch_to.frame(iframe)
driver.implicitly_wait(10)
driver.find_element_by_name('applicant.name').send_keys('email')
我尝试查找xpath,applicant.name的ID,但到目前为止没有任何效果。任何帮助或建议,将不胜感激。
答案 0 :(得分:0)
xpath /html/body/iframe
我一直在寻找applicant.name,它只是在单击假定按钮之后创建的。
我认为您必须检查iframe的xpath,也许这样可以起作用
"//iframe[contains(@src,'resumeapply')]"
答案 1 :(得分:0)
您要自动执行的页面中至少有 2 iframes :
因此您需要
修改您的XPath Expression以唯一标识第一个iframe,例如:
parentIframe = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH,"//iframe[contains(@id,'modal-iframe')]")))
切换到第一个iframe
driver.switch_to.frame(parentIframe)
找到第二个iframe并切换到它
childIframe = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH,"//iframe[contains(@src,'resumeapply')]")))
driver.switch_to.frame(childIframe)