selenium作业题
生活随笔
收集整理的這篇文章主要介紹了
selenium作业题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Selenium 作業 1
https://chromedriver.storage.googleapis.com/index.html
?
練習1 from selenium import webdriver import timedriver = webdriver.Chrome(r"d:\tools\webdrivers\chromedriver.exe")# ------------------------ driver.get('http://121866.com/cust/sign.html')driver.find_element_by_id("username").send_keys('xxxx') driver.find_element_by_id("password").send_keys('xxxx')driver.find_element_by_id("btn_sign").click() time.sleep(2)expectStr = driver.find_element_by_id("username").text if 'xxxx' == expectStr:print('測試通過') else:print('測試不通過')# ------------------------ input() driver.quit() 練習2 from selenium import webdriverdriver = webdriver.Chrome()
driver.get("http://www.weather.com.cn/html/province/jiangsu.shtml")
cityWeather = driver.find_element_by_id("forecastID").text.split("℃\n")
print(cityWeather)
lowestweather = 100
lowestcity = []
for one in cityWeather:
one = one.replace(u'℃','')
print(one)
curweather = int(one.split('\n')[-1].split('/')[-1])
if curweather < lowestweather:
lowestweather = curweather
lowestcity.append(one.split('\n')[-2])
elif curweather == lowestweather:
lowestcity.append(one.split('\n')[-2])
print('溫度最低為%s℃, 城市有%s' % (lowestweather, ' '.join(lowestcity)))
driver.quit()
方法2:
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.weather.com.cn/html/province/jiangsu.shtml")cityWeather = driver.find_element_by_id("forecastID").text.split("℃\n") print(cityWeather)lowestweather = 100 lowestcity = [] for one in cityWeather:one = one.replace(u'℃','')print(one)curweather = int(one.split('\n')[-1].split('/')[-1])if curweather < lowestweather:lowestweather = curweatherlowestcity.append(one.split('\n')[-2])elif curweather == lowestweather:lowestcity.append(one.split('\n')[-2])print('溫度最低為%s℃, 城市有%s' % (lowestweather, ' '.join(lowestcity))) driver.quit()
?
Selenium 作業 2
打開百度新歌榜, http://music.baidu.com/top/new在排名前50的歌曲中,找出其中排名上升的歌曲和演唱者注意: 有的歌曲名里面有 "影視原聲" 這樣的標簽, 要去掉 最終結果顯示的結果如下: 我不能忘記你 : 林憶蓮 等 : 嚴藝丹 飛天 : 云朵 粉墨 : 霍尊 春風十里不如你 : 李健?
方法1 # coding:utf8 from selenium import webdriverdriver = webdriver.Chrome(r"d:\tools\webdrivers\chromedriver.exe") # driver.implicitly_wait(1) # 抓取排行榜信息driver.get('http://music.baidu.com/top/new')# 層層往下查找 div = driver.find_element_by_id("songListWrapper") ul = div.find_element_by_tag_name("ul") liList = ul.find_elements_by_tag_name('li')for li in liList:# 哪些 是有 有up 標簽的 歌曲, F12 查看特性upTags = li.find_elements_by_class_name("up")if upTags:# 由于只要 歌曲名和 演唱者名title = li.find_element_by_class_name("song-title")titleStr = title.find_element_by_tag_name("a").textauthorsStr = li.find_element_by_class_name("author_list").textprint('{:10s}:{}'.format(titleStr, authorsStr))driver.quit()方法2:
# encoding:utf-8 from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("http://music.taihe.com/top/new") sleep(5) try:driver.find_element_by_xpath('//*[@id="subPage"]/div[8]/div[2]/span').click()print("廣告已經被點擊掉") except Exception as e:print("searchKey: there is no suspond Page1. e = {e}") sleep(2) div = driver.find_element_by_id("songListWrapper") ul = div.find_element_by_tag_name("ul") liList = ul.find_elements_by_tag_name("li")for li in liList:cla = li.find_elements_by_class_name("down")spa = li.find_elements_by_class_name("appendix")if len(cla) > 0:title = li.find_element_by_class_name("song-title ")yuanMa = title.text# print(yuanMa)if "影視原聲" not in yuanMa:titleStr = title.find_element_by_tag_name("a").textauthorList = li.find_element_by_class_name("author_list").textprint(titleStr, authorList)driver.quit()
?
Selenium 作業 3
登錄 51job , http://www.51job.com輸入搜索關鍵詞 "python", 地區選擇 "杭州"(注意,如果所在地已經選中其他地區,要去掉), 搜索最新發布的職位, 抓取頁面信息。 得到如下的格式化信息 Python開發工程師 | 杭州納帕科技有限公司 | 杭州 | 0.8-1.6萬/月 | 04-27 Python高級開發工程師 | 中浙信科技咨詢有限公司 | 杭州 | 1-1.5萬/月 | 04-27 高級Python開發工程師 | 杭州新思維計算機有限公司 | 杭州-西湖區 | 1-1.5萬/月 | 04-27?
方法一 # coding:utf8 from selenium import webdriverdriver = webdriver.Chrome(r"d:\tools\webdrivers\chromedriver.exe") # 別忘了設置 driver.implicitly_wait(10)# 抓取信息 driver.get('http://www.51job.com')driver.find_element_by_id('kwdselectid').send_keys('python') # 點擊工作地點 driver.find_element_by_id('work_position_input').click()# 選擇所有城市,去掉非杭州的且選擇杭州, # 如果是杭州但是沒有選,選上這些城市 cityEles = driver.find_elements_by_css_selector('#work_position_click_center_right em')for one in cityEles:cityName = one.textselected = one.get_attribute('class')# print cityName,seletedif cityName == u'杭州':if selected != 'on':one.click()else:if selected == 'on':one.click()# 保存城市選擇 driver.find_element_by_id('work_position_click_bottom_save').click()# 點擊搜索 driver.find_element_by_css_selector('.ush button').click()# 搜索結果分析 jobs = driver.find_elements_by_css_selector('#resultList div.el')for job in jobs:# 去掉第一行:標題行if 'title' in job.get_attribute('class'):continuefilelds = job.find_elements_by_tag_name('span')strField = [fileld.text for fileld in filelds]print (' | '.join(strField))driver.quit() 方法二 # coding:utf8 from selenium import webdriverdriver = webdriver.Chrome(r"d:\tools\webdrivers\chromedriver.exe") driver.implicitly_wait(10)driver.get('http://www.51job.com')driver.find_element_by_id('kwdselectid').send_keys('python') driver.find_element_by_id('work_position_input').click()# 選擇城市,去掉非杭州的,選擇杭州 selectedCityEles = driver.find_elements_by_css_selector('#work_position_click_center_right_list_000000 em[class=on]')for one in selectedCityEles:one.click()driver.find_element_by_id('work_position_click_center_right_list_category_000000_080200').click()# 保存城市選擇 driver.find_element_by_id('work_position_click_bottom_save').click() driver.find_element_by_css_selector('div.ush > button').click()# 搜索結果分析 jobs = driver.find_elements_by_css_selector('#resultList div[class=el]') for job in jobs:fields = job.find_elements_by_tag_name('span')stringFilelds = [field.text for field in fields]print (' | '.join(stringFilelds))driver.quit()方法2:
from selenium import webdriver import time # 使用火狐瀏覽器,打開51job的鏈接 driver = webdriver.Chrome() driver.implicitly_wait(10) driver.get("https://www.51job.com/") # 定位到輸入框,并輸入python driver.find_element_by_id("kwdselectid").send_keys('python') # 點擊城市 pot = driver.find_element_by_xpath('//*[@id="work_position_click"]') pot.click() # 定位到城市的上層 cityEles = driver.find_elements_by_css_selector('#work_position_click_center_right em') # 獲取城市名稱、以及是否選中 for one in cityEles:cityName = one.textselected = one.get_attribute('class')# 如果城市名稱叫杭州 并且未被選中就點擊一下選中if cityName == u'杭州':if selected != 'on':one.click()# 如果城市名稱不叫杭州 但是被選中了就點擊一下取消選擇else:if selected == 'on':one.click() # 點擊確定按鈕,關閉城市窗口 driver.find_element_by_id("work_position_click_bottom_save").click() time.sleep(2) # 在主頁面點擊搜索按鈕,等待兩秒之后,再結果頁面打印所有表格中內容 driver.find_element_by_xpath('/html/body/div[3]/div/div[1]/div/button').click() time.sleep(2) # 定位到表格的行所在的位置 resultList = driver.find_elements_by_css_selector('#resultList div.el') for re in resultList:# 表格的第一行不要if 'title' in re.get_attribute('class'):continue# 通過循環獲取每一行的內容,把換行用|代替t1 = re.text.replace("\n", "|")# 打印出所有內容print(t1) driver.quit()
?
Selenium 作業 4
登錄 http://www.51job.com點擊高級搜索輸入搜索關鍵詞 python 地區選擇 杭州職能類別 選 計算機軟件 -> 高級軟件工程師公司性質選 外資 歐美工作年限選 1-3 年 搜索最新發布的職位, 抓取頁面信息。 得到如下的格式化信息 Python開發工程師 | 杭州納帕科技有限公司 | 杭州 | 0.8-1.6萬/月 | 04-27 Python高級開發工程師 | 中浙信科技咨詢有限公司 | 杭州 | 1-1.5萬/月 | 04-27?
# coding:utf8 from selenium import webdriver executable_path = r"d:\tools\webdrivers\chromedriver.exe"driver = webdriver.Chrome(executable_path) driver.implicitly_wait(10)# 打開網址 driver.get('http://www.51job.com')# 選擇高級搜索 driver.find_element_by_css_selector('div.ush > a').click()# 輸入選擇關鍵詞 driver.find_element_by_id('kwdselectid').send_keys('python')# 工作地點選擇 driver.find_element_by_id('work_position_input').click()# 取消 已經選擇的 selectedCityEles = driver.find_elements_by_css_selector('#work_position_click_center em[class=on]')for one in selectedCityEles:one.click()# 選杭州 driver.find_element_by_id('work_position_click_center_right_list_category_000000_080200').click()# 保存選擇 driver.find_element_by_id('work_position_click_bottom_save').click()# 要點一下別的地方, 否則下面的元素會被擋住 driver.find_element_by_css_selector('div.tit').click()# 職能類別 選 計算機軟件 -> 高級軟件工程師driver.find_element_by_id('funtype_click').click()driver.find_element_by_id('funtype_click_center_right_list_category_0100_0100').click()driver.find_element_by_id('funtype_click_center_right_list_sub_category_each_0100_0106').click()driver.find_element_by_id('funtype_click_bottom_save').click()# 公司性質選 外資 歐美 driver.find_element_by_id('cottype_list').click() driver.find_element_by_css_selector('#cottype_list span.li[data-value="01"]').click()# 工作年限選 driver.find_element_by_id('workyear_list').click() driver.find_element_by_css_selector('#workyear_list span.li[data-value="02"]').click()# 點擊搜索 driver.find_element_by_css_selector('div.p_sou > span.p_but').click()# 結果列表獲取內容 jobs = driver.find_elements_by_css_selector('#resultList div[class=el]')for job in jobs:fields = job.find_elements_by_tag_name('span')stringFilelds = [field.text for field in fields]print (' | '.join(stringFilelds))driver.quit()方法2:
# encoding utf-8from selenium import webdriver from time import sleepdriver = webdriver.Chrome() driver.get("https://www.51job.com/") driver.implicitly_wait(3)# 點擊高級搜索 driver.find_element_by_css_selector('div.ush.top_wrap a.more').click() # 輸入python driver.find_element_by_id('kwdselectid').send_keys('python') # 點擊城市 driver.find_element_by_id('work_position_input').click() # 將杭州以外的城市取消選擇 emList = driver.find_elements_by_css_selector('#work_position_click_center_right em') for em in emList:cityName = em.textcheck = em.get_attribute('class')if cityName != '杭州':if check == 'on':em.click()else:if check != 'on':em.click() # 點擊確定按鈕 sleep(2) driver.find_element_by_id('work_position_click_bottom_save').click() driver.find_element_by_css_selector('div.tit').click() # 在高級搜索頁面點擊職能類別 driver.find_element_by_id('funtype_click').click() # 在職能頁面選擇高級開發工程師 driver.find_element_by_id('funtype_click_center_right_list_category_0100_0100').click() driver.find_element_by_id('funtype_click_center_right_list_sub_category_each_0100_0106').click() driver.find_element_by_id('funtype_click_bottom_save').click()# 選擇外派歐美 driver.find_element_by_css_selector('#cottype_list span').click() driver.find_element_by_css_selector('#cottype_list span.li[data-value="01"]').click()# 選擇工作年限選 1-3 年,點擊搜索 driver.find_element_by_id('workyear_list').click() driver.find_element_by_css_selector('#workyear_list span.li[data-value="02"]').click() driver.find_element_by_css_selector('div.p_sou > span.p_but').click() sleep(2) # 打印出搜索出的信息 elList = driver.find_elements_by_css_selector('.dw_table .el') for el in elList:if 'title' in el.get_attribute('class'):continueprint(el.text.replace("\n","|")) driver.quit()
?
Selenium 作業 5
打開 12306 網站 https://kyfw.12306.cn/otn/leftTicket/init出發城市 填寫 ‘南京南’, 到達城市 填寫 ‘杭州東’ 注意輸入城市名前,一定要先點擊一下輸入框,否則查不到。 而且輸入城市名最后要包含一個回車符,否則輸入框里面會自動清除發車時間 選 06:00--12:00 發車日期選當前時間的下一天,也就是日期標簽欄的,第二個標簽 我們要查找的是所有 二等座還有票的車次,打印出這些有票的車次的信息(這里可以用xpath),結果如下: G7641 G1505 G7393 G7689?
from selenium import webdriver from selenium.webdriver.support.ui import Selectdriver = webdriver.Chrome(r"d:\tools\webdrivers\chromedriver.exe") driver.implicitly_wait(10)driver.get('https://kyfw.12306.cn/otn/leftTicket/init')fromEle = driver.find_element_by_id('fromStationText') # 為什么這里要點擊一下 fromEle.click()fromEle.clear() fromEle.send_keys(u'南京南\n')toEle = driver.find_element_by_id('toStationText')toEle.click() toEle.clear() toEle.send_keys(u'杭州東\n')# 輸入開始時間, timeSelect = Select(driver.find_element_by_id('cc_start_time')) timeSelect.select_by_visible_text('06:00--12:00')tomorrow = driver.find_element_by_css_selector('#date_range li:nth-child(2)') # 點擊這個,就會搜索車次了 tomorrow.click()# 方法一:用xpath實現獲取二等座有票的車次信息 print('\n\n\n===============================\n\n\n') xpath ='//*[@id="queryLeftTable"]//td[4][@class]/../td[1]//a'theTrains = driver.find_elements_by_xpath(xpath) for one in theTrains:print (one.text)# 方法二:用css實現獲取二等座有票的車次信息 print('\n\n\n===============================\n\n\n') theTrainLines = driver.find_elements_by_css_selector('#queryLeftTable > tr') # 先不加這個,發現特別慢 driver.implicitly_wait(0) for one in theTrainLines:secondlevelseat = one.find_elements_by_css_selector('td:nth-of-type(4)[class]')if secondlevelseat:print (one.find_element_by_css_selector('td:nth-of-type(1) a').text) driver.implicitly_wait(10)driver.quit()
Selenium 作業 6
-- 作業1登錄華為官網 https://www.vmall.com/, 點擊 "華為官網" 和 "更多精彩->應用市場" 兩個鏈接 檢查 "華為官網" 頁面上是否 有如下主菜單 智能手機 筆記本&平板 穿戴設備 智能家居 更多產品 軟件應用 服務與支持 ?華為商城 檢查 "應用市場" 頁面上是否 有如下主菜單 首頁 游戲 軟件 專題 品牌專區 華為軟件專區 最后再回到主窗口, 檢查鼠標停留在 "筆記本&平板" 處的時候, 是否顯示的菜單有 "平板電腦 筆記本電腦 筆記本配件" 怎么模擬鼠標停留事件,請大家自行網上搜索,看看能不能自己解決問題。 -- 作業2 寫一個程序實現如下的自動化過程 - 登錄 121866.com - 選擇 發廣告, - 輸入標題和 一些文本內容 - 選擇 插圖,在本地目錄中選擇一張準備好的圖片 , 查看是否能夠上傳圖片成功# coding=utf-8 from selenium import webdriverdriver = webdriver.Chrome(r"d:\tools\webdrivers\chromedriver.exe") driver.implicitly_wait(20)driver.get('https://www.vmall.com/')driver.find_element_by_css_selector("div.s-sub a[href*='consumer.huawei']").click()driver.find_element_by_css_selector("div.s-sub a.icon-dropdown").click() driver.find_element_by_css_selector("a[href*='appstore.huawei.com']").click()def checkHuawei():expected = '智能手機|筆記本&平板|穿戴設備|智能家居|更多產品|軟件應用|服務與支持|華為商城'eles = driver.find_elements_by_css_selector(".menu_cn>ul>li")eleTexts = [ele.text for ele in eles]actual = '|'.join(eleTexts)if actual == expected:print('huawei page pass')else:print('huawei page fail!!!!')def checkAppmarket():expected = u'''首頁|游戲|軟件|專題|品牌專區|華為軟件專區'''eles = driver.find_elements_by_css_selector("ul.ul-nav li")eleTexts = [ele.text for ele in eles]actual = '|'.join(eleTexts)if actual == expected:print('app page pass')else:print('app page fail!!!!')def checkVmall():expected = u'''平板電腦|筆記本電腦|筆記本配件'''from selenium.webdriver.common.action_chains import ActionChainsac = ActionChains(driver)ac.move_to_element(driver.find_element_by_id('zxnav_1')).perform()eles = driver.find_elements_by_css_selector('#zxnav_1 li.subcate-item')eleTexts = [ele.text for ele in eles]actual = '|'.join(eleTexts)if actual == expected:print('main page pass')else:print('main page fail!!!!')mainWindow = driver.current_window_handlefor handle in driver.window_handles:driver.switch_to.window(handle)if '消費者業務官網' in driver.title:checkHuawei()elif '應用市場' in driver.title:checkAppmarket()elif '商城官網' in driver.title:checkVmall()driver.switch_to.window(mainWindow) checkVmall()input('\npress to quit...') driver.quit()
轉載于:https://www.cnblogs.com/xiao-qing/p/9230868.html
總結
以上是生活随笔為你收集整理的selenium作业题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: orcale存储过程学习之路--创建空存
- 下一篇: React拾遗:Render Props