简体   繁体   中英

How to click the Continue button on website using selenium in python?

I am trying to write a code that is able to auto apply on job openings on indeed.com. I have managed to reach the last stage, however, the final click on the application form is giving me a lot of trouble. Please refer the page as below在此处输入图像描述

Once logged in to my profile, I go to the relevant search page, click on the listing I am interested in and then on the final page (shown above) I am trying to click on the continue button using xpath as follows:

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()
driver.find_element_by_xpath('//*[@id="form-action-continue"]')

However, this gives me an error:

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="form-action-continue"]"}

Having gone through some suggestions on the net I have even tried the following:

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()
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="form-action-continue"]')))

But then this gives me a timeout error

TimeoutException: Message:

Will appreciate some help on this.

From it seems, on that form there are multiple iframe s, therefore the reason for your errors.

You need to get the first iframe , switch to it, get the second iframe inside the first one, switch to it and only afterwards you'll be able to get the continue button.

Something like this should do the trick:

    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()

Once I had a similar issue and standard time.sleep() until the form (or continue button) appears helped me. Try it instead of WebDriverWait, maybe it will work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM