pip install selenium
# coding=utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import time, re import winsound class Rzdtemp(): def __init__(self, logger): self.logger = logger def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "http://ticket.rzd.ru/" self.verificationErrors = [] def test_rzdtemp(self): self.logger.info('...') driver = self.driver driver.get(self.base_url + "/static/public/ticket?STRUCTURE_ID=2") driver.find_element_by_link_text("").click() self.logger.info(' ...') driver.find_element_by_id("j_username").clear() driver.find_element_by_id("j_username").send_keys("username") driver.find_element_by_id("j_password").clear() driver.find_element_by_id("j_password").send_keys("password") driver.find_element_by_id("other").click() self.logger.info(' ...') driver.find_element_by_link_text(" ").click() self.logger.info(' ...') driver.find_element_by_id("fromInput").clear() driver.find_element_by_id("fromInput").send_keys(u' ') driver.find_element_by_id("whereInput").clear() driver.find_element_by_id("whereInput").send_keys(u' ') driver.find_element_by_id("forwardDate").clear() driver.find_element_by_id("forwardDate").send_keys(u'02.09.2012') driver.find_element_by_id("ticket_button_submit").click() time.sleep(40) self.logger.info(' ...') rawhtml = driver.find_element_by_id('ajaxTrainTable').get_attribute("innerHTML") if u'' in rawhtml: self.logger.info('!!! !!!') strlist = [x.strip() for x in rawhtml.split('\n') if x.strip()!=u''] #print strlist train = '' for i,x in enumerate(strlist): if x == u'<div class="wotnumarrow">': train = strlist[i+1].replace('<span><b>','') if x == u'': # winsound.PlaySound('alarma.ogg', winsound.SND_NOWAIT) self.logger.info(u'-%s -%s %s' % ( train, strlist[i+3].replace('<b>','').replace('</b>',''), strlist[i+5].replace('<td><span>','').replace('</span></td>',''))) elif u'' in rawhtml: self.logger.info(' ...') elif u'' in rawhtml: self.logger.info(' ...') self.logger.info('...') driver.find_element_by_link_text("").click() def tearDown(self): self.logger.info(' ...') self.driver.close() self.driver.quit()
Source: https://habr.com/ru/post/174687/
All Articles