Python中的selenium的簡單用法
1 按鍵操作
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 找到輸入框,並且輸入指定內容
driver.find_element_by_id('kw').send_keys('selenium')
time.sleep(1)
# 全選輸入框內的全部內容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')
# 找到輸入框,並且輸入指定內容/中文格式
driver.find_element_by_id('kw').send_keys(u'爬蟲技巧')
time.sleep(1)
# 點選百度,進行搜尋
driver.find_element_by_id('su').click()
time.sleep(1)
# 退出瀏覽器
driver.quit()
2 設定等待時間
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
# WebDriverWait網頁等待
# 值1:等待的物件
# 值2:等待的時間
# WebDriverWait經常和until或者until not一起使用
is_visible = WebDriverWait(driver,10).until(lambda a:button.is_displayed())
print(is_visible)
WebDriverWait() 和 time.sleep()異同點:
1.都是讓程式等待執行的時間
2.time的時間是固定的,時間長短不會隨著標籤的載入速度而改變
WenDriverWait時間是不固定的,等待多少時間要看標籤的載入時間和指定的固定的時間
3.如果在指定的時間內,標籤仍然沒有載入出來,那麼time和WebDriverWait都會爆出異常
3 點選click()的簡單應用
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 找到logo的標籤
driver.find_element_by_class_name('index-logo-src')
logo = driver.find_element_by_xpath('//div[@id="lg"]/img')
# 等待直到目標標籤出現
WebDriverWait(logo,10).until(lambda driver:logo.is_displayed())
# 雙擊
ActionChains(driver).double_click(logo).perform()
# 滑鼠移動,將滑鼠移動到指定位置
time.sleep(1)
more = driver.find_element_by_class_name('bri')
WebDriverWait(driver,10).until(lambda driver : more.is_displayed())
ActionChains(driver).move_to_element(more).perform()
4 標籤選擇
# 通過標籤名字來找到指定的標籤
btns = driver.find_elements_by_tag_name('button')
print(btns)
# 1.通過索引來找到指定的標籤
btns[1].click()
# 2.通過屬性來找到指定的標籤
for btn in btns:
if btn.get_attribute('type') == 'button':
btn.click()
time.sleep(3)
btn.click()
# 3.彈出指定的元素,如果不寫索引,預設為最後一個
driver.find_elements_by_css_selector('button').pop().click()
# [type=button] []裡面為限制條件 限制選擇的內容
driver.find_elements_by_css_selector('button[type=button]').pop().click()
# 4.通過....來找到指定的標籤
driver.find_element(by=By.ID,value='pink').click()
5 window切換
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 獲取當前的window物件
current_window = driver.current_window_handle
# 獲取當前視窗編號,和網頁標題
print(current_window,driver.title)
driver.find_element_by_name('tj_trnews').click()
news = WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_css_selector('.hdline0 .a3'))
news.click()
# 輸出所有的視窗
all_windows = driver.window_handles
print(all_windows)
for window in all_windows:
if window!= current_window:
# 切換視窗
driver.switch_to.window(window)
相關文章
- Python Selenium的簡單演示程式Python
- Python中那些簡單又好用的特性和用法Python
- 繼續總結Python中那些簡單好用的用法Python
- C++中const的簡單用法C++
- python中yield的用法詳解——最簡單,最清晰的解釋Python
- fstream中ifstream和ofstream的簡單用法
- Promise的簡單用法Promise
- 簡單介紹Python中異常處理用法Python
- python--事件event簡單用法Python事件
- python selenium 用法 和 Chrome headlessPythonChrome
- Opentelemetry SDK的簡單用法
- Python中的selenium的安裝Python
- js迴圈中reduce的用法簡單介紹JS
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- Python Selenium簡介Python
- MD5的簡單用法
- linux下mail的簡單用法LinuxAI
- Python中if的基本用法Python
- python中return的用法Python
- python中的eval用法Python
- python中selenium常用的api方法PythonAPI
- 簡單探索Python中的filter函式PythonFilter函式
- python中的itertools模組簡單使用Python
- CyclicBarrier簡單用法
- realloc簡單用法
- Python中return self的用法Python
- channel的單向用法與select,range簡單使用
- 簡單說說iOS之WKWebView的用法iOSWebView
- 達夢資料庫DM8中WITH子句的簡單用法資料庫
- Python中的split()函式的用法Python函式
- Python-split()函式用法及簡單實現Python函式
- Python 中 selenium 庫Python
- Python中lambda表示式的用法Python
- Python中operator 模組的用法Python
- Python中pathlib 模組的用法Python
- Python中itertools 模組的用法Python
- Python中paramiko 模組的用法Python
- python中zip()函式的用法Python函式