首页 > 解决方案 > 如何在 python 中使用 selenium 在网站中单击继续按钮?

问题描述

我正在尝试编写一个能够在 Indeed.com 上自动申请职位空缺的代码。我已经成功进入最后阶段,但是,申请表的最后 2 次点击给我带来了很多麻烦。请参考以下第一页

在此处输入图像描述

一旦我们点击第一页上的继续,对于第二页,我首先需要向下滚动一点才能从这里到达......

在此处输入图像描述

..到这里然后最后点击应用。

在此处输入图像描述

我被困在第一页,因为点击功能没有做任何事情。我写了以下代码:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

driver.get("https://in.indeed.com/jobs?q=data%20analyst&l=Delhi&vjk=5c0bd416675cf4e5")
driver.find_element_by_xpath('//*[@id="apply-button-container"]/div[1]/span[1]').click()
time.sleep(5)
frame_1 = driver.find_element_by_css_selector('iframe[title="Job application form container"')
driver.switch_to.frame(frame_1)
frame_2 = driver.find_element_by_css_selector('iframe[title="Job application form"]')
driver.switch_to.frame(frame_2)
continue_btn = driver.find_element_by_css_selector('#form-action-continue')
continue_btn.click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@id='form-action-continue']"))).click()
driver.find_element_by_xpath('//button[@id="form-action-continue"]').click()

我已尝试为此步骤再次切换 iframe,但没有任何反应。甚至 .click() 函数也不做任何事情。

将不胜感激这方面的一些帮助。

标签: pythonseleniumxpathiframecss-selectors

解决方案


如果输入了您的值,这应该通过第一次单击。

driver.get("https://in.indeed.com/jobs?q=data%20analyst&l=Delhi&vjk=5c0bd416675cf4e5")
wait=WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.indeed-apply-button"))).click()
frame_1 = driver.find_element_by_css_selector('iframe[@title="Job application form container"')
driver.switch_to.frame(frame_1)
frame_2 = driver.find_element_by_css_selector('iframe[@title="Job application form"]')
driver.switch_to.frame(frame_2)
cont="#form-action-continue"
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, cont))).click()

推荐阅读