2011-11-29 2 views
7

저는 웹 스크 레이 핑 프로젝트를 위해 Python에서 Selenium webdriver를 사용하고 있습니다.Python의 웹 스크 레이 핑 도구를 통해 웹 사이트에 로그인

로그인 정보를 입력 한 다음 제출 버튼을 클릭하여 로그인하고 싶습니다.

사용자 이름과 암호를 입력 할 수 있습니다. 하지만 제출 버튼을 마우스 오른쪽 버튼으로 클릭 할 수 없습니다.

"제출"버튼의 유형은 <input>입니다.

<input type="image" src="/images/buttons/loginnow.gif" tabindex="3"> 

여기는 마우스를 클릭하려는 파이썬 코드입니다. 파이썬에서 웹 사이트에 로그인 할 또는 다른 대체 솔루션을 해결하는 방법을

AttributeError: 'WebDriver' object has no attribute 'click'

어떤 생각 :

submitButton=driver.find_element_by_xpath("//input[@type='image'][@src='/images/buttons/loginnow.gif']") 
driver.click(submitButton) 

나는 다음과 같은 오류가 발생합니다.

감사

답변

4

드라이버가 아닌 요소의 클릭 기능을 호출해야합니다.

submitButton=driver.find_element_by_xpath("//input[@type='image'][@src='/images/buttons/loginnow.gif']") 
submitButton.click() 
9

나는 mechanize를 사용하여 행운을했다. 꽤 간단하고 사용하기 쉽습니다. 당신은 정말, 이미지를 클릭 할 필요가 없습니다

from BeautifulSoup import BeautifulSoup 
from tidylib import tidy_document 

import mechanize 
import cookielib 

if __name__ == '__main__': 
    browser = mechanize.Browser() 

    cookiejar = cookielib.LWPCookieJar() 
    browser.set_cookiejar(cookiejar) 

    browser.set_handle_equiv(True) 
    browser.set_handle_redirect(True) 
    browser.set_handle_referer(True) 
    browser.set_handle_robots(False) 

    browser.open('https://www.example.com/') 

    browser.select_form(name = 'loginform') 
    browser['username'] = 'foo' 
    browser['password'] = 'bar' 

    browser.submit() 

    browser.open(browser.click_link(text = 'Link text')) 

    soup = BeautifulSoup(tidy_document(browser.response().read())[0]) 

:

여기에 내가 만든 스크립트의 제거 다운 버전입니다. 적절한 양식 세부 정보를 작성하고 submit()으로 작성하면됩니다.

또한 아무 것도 구문 분석하지 않으려면 BeautifulSouptidylib 종속성을 제거하십시오.

+0

맹세 .. 이렇게 나오는 것에 따라, 셀레늄은 또한'제출했다, 정말 놀라운 일이다()'더 나은의 저 – Kiran

+0

위해 일한 것을 스크립트를 다시 작성 : P를 – Blender

관련 문제