2016-02-14 3 views
0

Я новичок в селене с питоном. Пробовал этот образец тестового скрипта.Selenium with Python Scripting

from selenium import webdriver 

def browser(): 

     driver= webdriver.Firefox() 
     driver.delete_all_cookies() 
     driver.get('http://www.gmail.com/') 
     driver.maximize_window() 
     driver.save_screenshot('D:\Python Programs\Screen shots\TC_01.png') 
     driver.find_element_by_xpath("//*[@id='next']").click() 
     message=driver.find_element_by_xpath("//*[@id='errormsg_0_Email']") 
     driver.save_screenshot('D:\Python Programs\Screen shots\TC_03.png') 
     name= driver.find_element_by_xpath("//*[@id='Email']").send_keys('gmail') 
     driver.save_screenshot('D:\Python Programs\Screen shots\TC_02.png') 
     print name 
     driver.find_element_by_xpath("//*[@id='next']").click() 
     password=driver.find_element_by_xpath("//*[@id='Passwd']").send_keys('password') 
     driver.save_screenshot('D:\Python Programs\Screen shots\TC_03.png') 
     print password 
     driver.find_element_by_xpath("//*[@id='signIn']").click() 
     driver.implicitly_wait(10) 
     driver.quit() 
i=browser() 

До ниже шаги скрипт запускается после того, что я получаю ошибку как

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":"//*[@id='Passwd']"} 
Stacktrace:. 
+0

Привет Я использовал фиктивный mailid и пароль как example.so пожалуйста, не оправдывают ответ с that.Because вы получите сообщение об ошибке с этой почты и пароля – Subbu

+0

Поставьте точку останова на этой линии и запустить скрипт. Перейдите в браузер (теперь открыт), щелкните правой кнопкой мыши внутри страницы и выберите «Просмотр источника» (или что-то подобное). Найдите '' Passwd''', и если вы его найдете, скопируйте всю строку в свой вопрос. Если вы его не нашли, то совершенно очевидно, почему ваш скрипт не работает. –

+0

ваша функция не имеет возвращаемого значения, поэтому значение i всегда будет None. Если вы хотите, чтобы браузер был возвращен, добавьте строку драйвера возврата в конце вашей функции и не покидайте браузер до конца функции. – hilcharge

ответ

0

Вы должны добавить подождать, прежде чем нажать кнопку пароля, так как он появляется после задержки

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//*[@id='Passwd']")) 
) 

Еще лучше, вы должны настроить implicit wait вашему драйверу в начале вашего скрипта, а не в конце.

driver = webdriver.Firefox() 
driver.implicitly_wait(10)