点击' onclick'按钮与硒和Python

时间:2015-12-12 10:54:11

标签: javascript python selenium xpath

我需要从此page中删除一些信息。

但是,页面在进入之前需要年龄确认。它有一个按钮,必须先单击该按钮才能看到页面。我的问题是我单击此按钮的方法根本不起作用。

我使用selenium和Python 2.7.10。

这是我的代码:

def download_specific_page(url):
    try:
        browser = get_browser()
        wait = WebDriverWait(browser, 30)
        browser.get(main_page_url)
        time.sleep(2)
        buttons = browser.find_elements_by_class('close')
        for button in buttons:
            onclick_text = button.get_attribute('onclick')
            if onclick_text and re.search('ConfirmAge();', onclick_text):
                print "found it!"
                button.click()
        browser.get(url)
        html = browser.page_source
        browser.close()
        return html
    except Exception:
        info = 'Generic exception\n'
        return ""

我也试过xpath,但仍然没有成功:

def download_specific_page(url):
    try:
        browser = get_browser()
        wait = WebDriverWait(browser, 30)
        browser.get(main_page_url)
        button = browser.find_element_by_xpath("/html/body/div#bg_image/div.container/div#content/div#confirmage/div.confirmage_navigation/button.close[1]")
        button.click()
        time.sleep(2)
        browser.get(url)
        html = browser.page_source
        browser.close()
        return html
    except Exception:
        info = 'Generic exception\n'
        return ""

任何想法如何点击此按钮以便我可以废弃页面?

1 个答案:

答案 0 :(得分:2)

使用常规点击:

from selenium import webdriver

URL = 'https://www.24dolores.pl/pl/ogloszenia-towarzyskie'
CSS_SELECTOR = '.close'

browser = webdriver.Chrome()
browser.implicitly_wait(10)
browser.get(URL)
close = browser.find_element_by_css_selector(CSS_SELECTOR)
close.click()