日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Selenium-WebDriverApi介绍

發布時間:2023/10/18 编程问答 55 如意码农
生活随笔 收集整理的這篇文章主要介紹了 Selenium-WebDriverApi介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

瀏覽器操作:

#刷新
driver.refresh()
from selenium import webdriver
driver=webdriver.Chrome()
driver.get('http://www.baidu.com')
import time
time.sleep(2)
driver.refresh() #前進
driver.forward()
#后退
driver.back

獲取標簽元素

from selenium import webdriver
driver=webdriver.Chrome()
driver.get('http://www.imdsx.cn')

#通過ID定位目標元素
driver.find_element_by_id('i1').send_keys(1111)#向頁面發送文本‘11111’
# 通過className定位目標元素
driver.find_element_by_class_name('c1').send_keys(1111)
#通過name屬性定位目標元素
driver.find_element_by_name('n1').send_keys(1111)
#通過Xpath屬性定位目標元素
driver.find_element_by_xpath('//input[@placeholder="請通過XPATH定位元素"]').send_keys(1111)

#通過css Selector定位目標元素
driver.find_element_by_css_selector('[maxlength="20"]').send_keys(2222)

# 通過標簽名稱定位(注:在一個頁面中,標簽一定會重復,所以不用這個來進行定位)
driver.find_element_by_tag_name('input').send_keys('tag name')

#通過標簽中的文本查找元素
driver.find_element_by_link_text('登錄').click()

#通過標簽中文本的模糊匹配查找
driver.find_element_by_partial_link_text('錄').click()

獲取標簽元素常用的一共有8種定位方式,而Selenium實際提供了18種定位方式,還有8種是上面的復數形式,實際種一般用不到,還有2種是這上面16種的底層封裝。參數化的一種調用方式。

復數:

e=driver.find_elements_by_class_name('classname')[0]
e.send_keys(1111)
print(e)
print(type(e)) 接受兩個參數 形參1 以什么形式定位 形參2 定位value是什么
driver.find_element_by_id('i1')
driver.find_element('id','i1').send_keys(1111)
driver.find_elements('id','i1')[0].send_keys(2222)

一般都直接用driver.find_element_by_css_selector(),因為底層只要符合w3c的都轉化為css_selector

窗口操作:

#獲取當前瀏覽器的大小
driver.get_window_size()
#通過寬和高對size進行設置
driver.set_window_size('100','200')
# 獲取當前窗口針對于Windows的位置的坐標x,y
driver.get_window_position() # 設置當前窗口針對Windows的位置,x,y
driver.set_window_position(20,20) # 最大化當前窗口,不需要傳參
driver.maximize_window() # 返回當前操作的瀏覽器句柄
driver.current_window_handle # 返回所有打開server的瀏覽器句柄
driver.window_handles
截取當前頁面:
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.get_screenshot_as_file('d.png') 執行JavaScript語句
# 執行JavaScript語句
driver.execute_script('window.scrollTo(0,0);')#執行js的api,通過js來操作滾動條,滾動到最上面

關閉與退出:

#當開啟多個頁面時,關閉當前頁面
driver.close()
#退出并關閉所有頁面驅動
driver.quit()
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://ui.imdsx.cn/uitester/")
driver.maximize_window()#將窗口放大
driver.execute_script('window.scrollTo(0,0);')#執行js的api
driver.find_element_by_css_selector('[href="/new-index/"]').click()
handles=driver.window_handles#返回所有打開server的瀏覽器句柄
print(handles)#返回list
driver.switch_to.window(handles[1])
driver.find_element_by_css_selector('#newtag').send_keys(1111)#找到新頁面上的元素
driver.close()#關閉當前tab頁
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://ui.imdsx.cn/uitester/")
driver.maximize_window()#將窗口放大
driver.execute_script('window.scrollTo(0,0);')#執行js的api
driver.find_element_by_css_selector('[href="/new-index/"]').click()
handles=driver.window_handles
print(handles)
driver.switch_to.window(handles[1])
driver.find_element_by_css_selector('#newtag').send_keys(1111)
driver.quit() #關閉所有頁面,結束服務

其他

# 返回頁面源碼
driver.page_source # 返回tag標題
driver.title # 返回當前Url
driver.current_url # 獲取瀏覽器名稱 如:chrome
driver.name

ElementApi接口

#根據標簽屬性名稱,獲取屬性value
element.get_attribute('style')
# 向輸入框輸入字符串 如果input的type為file類型 可以輸入文件絕對路徑上傳文件
element.send_keys()
# 清除文本內容
element.clear()
# 鼠標左鍵點擊操作
element.click() # 通過屬性名稱獲取屬性
element.get_property('id') # 返回元素是否可見 True or False
element.is_displayed() # 返回元素是否被選中 True or False
element.is_selected() # 返回標簽元素的名字
element.tag_name # 獲取當前標簽的寬和高
element.size # 獲取元素的文本內容
element.text # 模仿回車按鈕 提交數據
element.submit() # 獲取當前元素的坐標
element.location # 截取圖片
element.screenshot()
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://ui.imdsx.cn/uitester/")
driver.maximize_window()#將窗口放大
driver.execute_script('window.scrollTo(0,0);')#執行js的api
e=driver.find_element_by_css_selector('#i1')
e.send_keys(1111)
import time
time.sleep(1)
e.clear() #清除文本框內內容


總結

以上是生活随笔為你收集整理的Selenium-WebDriverApi介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。