2014-03-13 2 views
1

에 셀레늄 로깅을 사용하여 내가에서 허용 대답의 솔루션 다음 : 나는 coinbase에 로그인하려고 How to use Selenium with Python?파이썬은

https://coinbase.com/signin

여기 내 코드

내가 이것을 실행
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import Select 
from selenium.common.exceptions import NoSuchElementException 


site = "https://coinbase.com/signin" 
email = "[email protected]" 
password = "mypassword" 

xpaths = { 
'emailTxtBox' : '/html/body/div[2]/div[2]/div[2]/div/div/form/div[2]/div/input',  
'passwordTxtBox' : '/html/body/div[2]/div[2]/div[2]/div/div/form/div[3]/div/input', 
'submitButton' : '/html/body/div[2]/div[2]/div[2]/div/div/form/div[4]/div/input' 
    } 

browser = webdriver.Firefox() 
browser.get(site) 

#Write Username in Username TextBox 
mydriver.find_element_by_xpath(xpaths['emailTxtBox']).send_keys(email) 

#Write Password in password TextBox 
mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).send_keys(password) 

#Click Login button 
mydriver.find_element_by_xpath(xpaths['submitButton']).click() 

입니다, 셀레늄이 코인베이스를 열고 몇 초 후에 새로 고침을하면 아무 일도 일어나지 않습니다.

xpaths['usernameTxtBox'] 

을하지만 배열에 따라 존재하지 않습니다 :

+0

xpath가 올바른 요소에 맞습니까? 두 개의'send_keys'에 대해 적어도 입력 된 텍스트를보아야합니다. xpaths가 꺼져 있지만 여전히 * 뭔가 * 일치하면 Selenium은 키를 보내고 잘못된 요소를 클릭하면 행복하게 돌아갑니다. – Louis

답변

4

당신이 지정하는 코멘트 후

xpaths = { 
'usernameTxtBox' # needs to be in the array 
'emailTxtBox' : '/html/body/div[2]/div[2]/div[2]/div/div/form/div[2]/div/input',  
'passwordTxtBox' : '/html/body/div[2]/div[2]/div[2]/div/div/form/div[3]/div/input', 
'submitButton' : '/html/body/div[2]/div[2]/div[2]/div/div/form/div[4]/div/input' 
    } 

편집 : 나도 고려하여 XPath를 수정하거나 것 단순하게 유지하라. (바보).

//input[@id='email'] 
//input[@id='password'] 
//input[@id='signin_button'] 
+0

그건 그냥 게시물에 오타되었습니다, 미안 해요. 아직도 일하지 않습니다. – user3412816

+0

내 대답이 수정되었습니다. 나는 브라우저를 사용하고 싶었다. 대신 mydriver. 바보 나. 어쨌든 도와 줘서 고마워. – user3412816