Selenium各类方法简单演示

from selenium import webdriver
import time
from selenium.webdriver.support.select import Select

#查询北京到天津0615-0715的高铁
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get('https://www.12306.cn/index/')
driver.maximize_window()
#窗口最大化
driver.implicitly_wait(10)
now_window=driver.current_window_handle
#获取当前窗口句柄
driver.find_element_by_link_text('往返').click()
driver.find_element_by_id('fromStationFanText').click()
driver.find_element_by_xpath('//*[@id="ul_list1"]/li[1]').click()
driver.find_element_by_xpath('//*[contains(text(),"天津")]').click()

time.sleep(2)
# 定位起始时间和终止时间输入框
start_date = driver.find_element_by_id('go_date')
end_date = driver.find_element_by_id('from_date')
js = """
var s_ele = arguments[0];
var e_ele = arguments[1];
s_ele.readonly = false;
s_ele.value ='2020-06-15';
e_ele.readonly = false;
e_ele.value ='2020-07-15';
return [s_ele.value,e_ele.value]
"""
# js中的arguments[0]接收的是args中的第1个参数,就是下面传入的start_date
# js中的arguments[1]接收的是args中的第2个参数,就是下面传入的end_date
# js代码中可以通过return来返回js代码执行之后的结果
res = driver.execute_script(js,start_date,end_date)
time.sleep(4)
js1="document.getElementById('isHigh').click();"
driver.execute_script(js1)
time.sleep(1)
driver.find_element_by_css_selector('#search_two').click()
time.sleep(5)
#切换窗口
all_handles = driver.window_handles
for handle in all_handles:
    if handle != now_window:
        driver.switch_to.window(handle)
        driver.find_element_by_xpath('//*[@id="query_ticket"]').click()
        time.sleep(2)
        #select选择时间
        s=driver.find_element_by_id('cc_start_time')
        Select(s).select_by_visible_text('18:00--24:00')
        #打印当前页面url、title
        print(driver.current_url)
        print(driver.title)
        #截图
        driver.get_screenshot_as_file("E:\\12306.")
        time.sleep(2)
driver.quit()

 

posted @ 2020-06-12 15:55  hyeonsori  阅读(254)  评论(0)    收藏  举报