selenium基本
selenium詳解
from selenium import webdriver
import time
#建立一個瀏覽器
driver = webdriver.Chrome()
#瀏覽器最大化
driver.maximize_window()
# #最小化瀏覽器
# driver.minimize_window()
# #開啟指定的網頁(URL就是指網址)
driver.get("http://www.baidu.com")
#定位內容文字框
textElement = driver.find_element_by_id("kw")
#輸入內容
textElement.send_keys("五洲 趙靜")
#定位 百度一下 按鈕
buttonElement = driver.find_element_by_id('su')
#點選
buttonElement.click()
獲取輸入框的值
元素文字的值
from selenium import webdriver
import time
#建立一個瀏覽器
driver = webdriver.Chrome()
#瀏覽器最大化
driver.maximize_window()
# #最小化瀏覽器
# driver.minimize_window()
# #開啟指定的網頁(URL就是指網址)
driver.get("http://www.baidu.com")
# #定位內容文字框
# textElement = driver.find_element_by_id("kw")
# #輸入內容
# textElement.send_keys("五洲 趙靜")
#選擇 輸入框 然後獲取輸入框 的name 屬性的值
# name = driver.find_element_by_id("kw").get_attribute("class")
# print(name)
#判斷元素是否可見 返回的是 T 或者 F
tf = driver.find_element_by_id("kw").is_displayed()
print(tf)
# #定位 百度一下 按鈕
# buttonElement = driver.find_element_by_id('su')
# #點選
# buttonElement.click()
#text獲取元素的文字內容
# driver.find_element_by_id("s-bottom-layer-right").text
# <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
#關閉瀏覽器
driver.quit()
元素定位顯示等待隱式等待,滑鼠操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
#開啟瀏覽器
driver = webdriver.Firefox()
#等待頁面載入,操作10s報出異常
driver.implicitly_wait(10)
driver.maximize_window()
#開啟網址
driver.get("http://www.baidu.com")
#定位 設定 按鈕
# st = driver.find_element_by_id("s-usersetting-top")
#ActionChains中需要指定要操作的driver,move_to_element後面要寫讓在那個元素上懸停,而perform()可以看成是提交這次操作
# ActionChains(driver).move_to_element(st).perform()
#在搜尋框設定滑鼠右鍵操作
# sd = driver.find_element_by_id("kw")
# ActionChains(driver).context_click(sd).perform()
#拖動
# baidu = driver.find_element_by_xpath('//ul[@id="hotsearch-content-wrapper"]/li[1]')
# ActionChains(driver).drag_and_drop(baidu, sd).perform()
#滑鼠 雙擊 操作
driver.find_element_by_id('kw').send_keys("馬大師")
# 雙擊 百度一下 按鈕
baudubutto = driver.find_element_by_id('su')
ActionChains(driver).double_click(baudubutto).perform()
鍵盤操作
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.maximize_window()
#開啟網頁
driver.get("http://www.baidu.com")
#定位輸入框 輸入內容
driver.find_element_by_id("kw").send_keys("美團外賣")
time.sleep(3)
#刪除多輸入的 數字2
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
# 空格Keys.SPACE
# driver.find_element_by_id("kw").send_keys(Keys.SPACE)
# driver.find_element_by_id("kw").send_keys("接新單了")
# #全選
# driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
#
# #剪下
# driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
# time.sleep(2)
#
# #貼上
# driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')
#
# #回車操作
# driver.find_element_by_id("kw").send_keys(Keys.ENTER)
顯示等待
#元素等待:顯示等待 隱式等待
#顯示等待是等待載入頁面上的單個元素,顯示等待一般應用在介面查詢內容比較多,載入時間特別長的時間
#隱式等待是等整個頁面全部載入完成 implicitly_wait(10)
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#開啟瀏覽器
driver = webdriver.Firefox()
#等待頁面載入,操作10s報出異常
driver.implicitly_wait(10) #隱式等待
driver.maximize_window()
driver.get("http://www.baidu.com")
#顯示等待:driver 代表的是瀏覽器物件,10代表的時候最大超時時間,超過10s就報錯,0.5s指定的是步長預設就是0.5 可以不寫,
#(By.ID, 'kw') 元素定位的方式和內容,要寫在一個元組中傳遞給presence_of_element_located
a = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located((By.ID, 'kw')))
a.send_keys('王二麻子')
切換控制程式碼
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get("https://www.jd.com/")
#獲取當前視窗的控制程式碼 控制程式碼就像視窗的身份證一樣可以唯一的標識我們的視窗
jdhandle = driver.current_window_handle
#點選 酒店
driver.find_element_by_css_selector('ul[class="J_tab_head service_list"] a[href="//hotel.jd.com/"]').click()
#獲取當前瀏覽器所有的視窗控制程式碼 視窗控制程式碼存放在列表中
winhands = driver.window_handles
print(winhands)
#方法一:在點選酒店後會產生兩個視窗,我們和剛開始開啟的視窗控制程式碼判斷,如果不相等則是剛開啟的視窗
# #切換控制程式碼
# for one in winhands:
# if one == jdhandle:
# continue
# else:
# #切換到新開啟的視窗控制程式碼
# driver.switch_to.window(one)
# #進入酒店選擇介面 輸入城市
# driver.find_element_by_id('city').clear()
# driver.find_element_by_id('city').send_keys("西安")
# #點選
# driver.find_element_by_xpath('//ul[@class="suggest-ul"]/li[1]').click()
#
# time.sleep(3)
# #點選 搜尋酒店 按鈕
# driver.find_element_by_id("searchBtn").click()
#方法二:獲取所有的視窗的控制程式碼是存在列表中,列表中的最後一個元素就是新開啟的視窗的控制程式碼
driver.switch_to.window(winhands[-1])
#進入酒店選擇介面 輸入城市
driver.find_element_by_id('city').clear()
driver.find_element_by_id('city').send_keys("西安")
#點選
driver.find_element_by_xpath('//ul[@class="suggest-ul"]/li[1]').click()
time.sleep(3)
#點選 搜尋酒店 按鈕
driver.find_element_by_id("searchBtn").click()
斷言模組加酒店案列
#京東商城 練習 按照條件篩選獲取所有的酒店 名字
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
##斷言模組EC
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get("https://www.jd.com/")
#獲取當前視窗的控制程式碼 控制程式碼就像視窗的身份證一樣可以唯一的標識我們的視窗
jdhandle = driver.current_window_handle
#點選 酒店
driver.find_element_by_css_selector('ul[class="J_tab_head service_list"] a[href="//hotel.jd.com/"]').click()
#獲取當前瀏覽器所有的視窗控制程式碼 視窗控制程式碼存放在列表中
winhands = driver.window_handles
#方法二:獲取所有的視窗的控制程式碼是存在列表中,列表中的最後一個元素就是新開啟的視窗的控制程式碼
driver.switch_to.window(winhands[-1])
#關閉廣告: 這個地方設定顯示等待的原因為讓頁面元素完成載入
element_locat = WebDriverWait(driver, 20, 0.5).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'i[class="close"]')))
element_locat.click()
#進入酒店選擇介面 輸入城市
driver.find_element_by_id('city').clear()
driver.find_element_by_id('city').send_keys("西安")
#點選
driver.find_element_by_xpath('//ul[@class="suggest-ul"]/li[1]').click()
#選擇入住 時間
driver.find_element_by_id('dateStart').click()
driver.find_element_by_xpath('//div[@class="ui-jm-calendar ui-calendar-3"]/div[2]//tbody/tr[5]/td[5]').click()
#離店日期
driver.find_element_by_xpath('//div[@class="ui-jm-calendar ui-calendar-4"]/div[2]//tbody/tr[1]/td[4]').click()
#選擇 商圈
driver.find_element_by_id('hotelKeys').send_keys("鐘樓")
#點選 選擇
driver.find_element_by_xpath('//body/div[@class="suggest"][2]//li[2]').click()
#點選 搜尋酒店 按鈕
driver.find_element_by_id("searchBtn").click()
#driver瀏覽器物件, 20s 最大超時時間, 0.5 間隔步長 () 設定顯示等待 判斷頁面是否載入完成,這個元素找到了再去獲取頁面資訊
WebDriverWait(driver, 20, 0.5).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.total')))
#獲取酒店名字
titename = driver.find_elements_by_css_selector('.p-name')
for one in titename:
print(one.text)
相關文章
- selenium的基本使用
- Selenium的安裝與Firefox配置以及Selenium基本用法(超詳細)Firefox
- Python爬蟲之Selenium庫的基本使用Python爬蟲
- Selenium,Selenium使用方法(三)
- Selenium,Selenium使用方法(二)
- Selenium,Selenium使用方法(一)
- selenium4 selenium_handless的使用
- Selenium 使用
- 從入門到放棄:Python+selenium unittest測試框架及基本語法規則Python框架
- Selenium用法詳解 -- Selenium3 常用方法
- python selenium DemoPython
- selenium模組
- Selenium 4 使用
- Selenium - 簡介
- Selenium安裝
- Selenium用法詳解 - - selenium自動化測試概要
- Selenium實戰教程系列(三)--- Selenium中的動作
- Selenium Part1:框架搭建與selenium框架介紹框架
- 『心善淵』Selenium3.0基礎 — 23、Selenium的元素等待
- Selenium用法詳解 -- selenium八大定位詳解
- 自動化測試框架Selenium的使用——安裝Selenium框架
- python+selenium環境搭建,pip安裝selenium失敗Python
- Selenium等待事件Waits事件AI
- Selenium等待條件
- Selenium的等待操作
- selenium和PhantomJS概述JS
- from selenium import webdriverImportWeb
- selenium 4.0 釋出
- Python之Selenium 框架Python框架
- linux 上部署 seleniumLinux
- selenium get_attribute
- pip安裝selenium
- Python 中 selenium 庫Python
- selenium測試心得
- selenium隱式等待
- 測試---selenium(5)
- Selenium 初體驗
- Selenium switch_to方法