1、Selenium對元素常用操作
操作 | 說明 |
---|---|
click() |
單擊元素 |
send_keys() |
模擬輸入 |
clear() |
清除文字 |
submit() |
點選提交 |
示例,頁面程式碼片段如下:
<!DOCTYPE html>
<html lang="zh-cn">
<body>
<div id="zc">
<legend>註冊使用者A</legend>
<p id="p1">
<label for="userA">賬號A</label>
<input type="textA" name="userA" id="userA" class="c_uA" placeholder="賬號A" required="" value="">
</p>
<p>
<label for="password">密碼A</label>
<input type="password" name="passwordA" id="passwordA" placeholder="密碼A" value="">
</p>
<p><a href="http://www.baidu.com" id="fwA">訪問 百度 網站</a></p>
</div>
</body>
</html>
指令碼程式碼:
"""
1.學習目標:
必須掌握selenium中元素的輸入,點選,清空
2.語法
2.1 點選
元素.click()
2.2 輸入
元素.send_keys(輸入的內容)
2.3 清空
元素.clear()
2.4 提交
元素.submit()
3.需求
在頁面中,完成元素的輸入,點選,清空,提交
4.總結
在對輸入框進行輸入操作時,先清空再輸入(要記住)
"""
# 1.匯入selenium
from selenium import webdriver
from time import sleep
import os
# 2.開啟瀏覽器
driver = webdriver.Chrome()
# 3.開啟頁面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url)
# 4.對賬號A輸入框做輸入和清空操作,點選新浪網站連線
# 4.1 定位輸入框和百度超連結
# 定位賬號A輸入框
textA = driver.find_element_by_id("userA")
# 定位百度超連結
baidu = driver.find_element_by_link_text("訪問 百度 網站")
# 4.2 輸入文字,清空
# 在賬號A中輸入Selenium
textA.send_keys("Selenium")
sleep(2)
# 清空賬號A中的輸入內容
textA.clear()
sleep(2)
# 4.3 點選百度超連結
baidu.click()
# 4.4 定位百度輸入框
baidu_element = driver.find_element_by_id("kw")
# 4.5 在輸入框中輸入【心善淵&Selenium基礎】
baidu_element.send_keys("【心善淵&Selenium基礎】")
sleep(5)
# 4.6 定位按鈕 百度一下
yixia_element = driver.find_element_by_id("su")
# 4.7 點選百度一下
"""
submit()呼叫提交,
submit()的作用等同於click(),
但是click()的使用面要更廣一些。
"""
yixia_element.submit()
# 5.關閉瀏覽器
sleep(2)
driver.quit()
補充:
click()
方法:就是單純的點選下,或者說是單擊下滑鼠左鍵,更強調是一個獨立性的事件。submit()
方法:一般使用在有form
標籤的表單中,把form
表單中的資訊提交到後臺。submit()
方法主要用於對資訊進行提交,也可以使用click()
方法進行代替。
2、Selenium對元素的其他操作
如下表:
操作 | 說明 |
---|---|
size |
返回元素大小(長寬畫素) |
text |
獲取元素的文字(兩個標籤之間的文字) |
get_attribute("xxx") |
獲取屬性值,xxx表示元素中要獲取的屬性 |
is_display() |
判斷元素是否可見,也就是在頁面中是否可見 |
is_enabled() |
判斷元素是否可用 |
title |
獲取頁面title |
current_url |
獲取當前頁面URL |
提示:
size
、text
、title
、current_url
:為屬性,呼叫時無括號。如:元素.size
。
is_display()
、is_enabled()
:為方法,呼叫時需要括號。如:元素.is_display().
title
、current_url
:使用瀏覽器例項化物件直接呼叫。 如:driver.title
。
示例,頁面程式碼片段如下:
<!DOCTYPE html>
<html lang="zh-cn">
<body>
<div id="zc">
<title>註冊A</title>
<button type="submitA" name="First button" value="註冊A" title="加入會員A">註冊使用者A</button>
</div>
</body>
</html>
指令碼程式碼:
"""
1.學習目標:
掌握selenium中元素的其他操作
2.語法
2.1 size 獲取元素大小
元素.size
2.2 text 獲取元素文字(掌握)
元素.text 2個標籤之間的文字
2.3 get_attribute() 獲取元素屬性(掌握)
元素.get_attribute("屬性名")
2.4 is_displayed() 判斷元素是否可見(掌握)
元素.is_displayed()
2.5 is_enabled() 判斷元素是否可用(掌握)
元素.is_enabled()
2.6 獲取頁面標題
driver.title
2.7 獲取當前頁面url
driver.current_url
3.需求
在頁面中,完成上面操作。
"""
# 1.匯入selenium
from selenium import webdriver
from time import sleep
import os
# 2.開啟瀏覽器
driver = webdriver.Chrome()
# 3.開啟頁面
url = "file:///" + os.path.abspath("./2.html")
driver.get(url)
# 4.元素其他操作---按鈕
button = driver.find_element_by_css_selector("button[type='submitA']")
# 4.1 獲取元素大小
print("元素大小:", button.size)
# 4.2 獲取元素文字
print("元素文字:", button.text)
# 4.3 獲取元素屬性
print("元素的value屬性值:", button.get_attribute("value"))
print("元素的title屬性值:", button.get_attribute("title"))
# 沒有的屬性為空,什麼都不列印,但不報錯
print(button.get_attribute("id"))
# 4.4 判斷元素是否可見
print("button按鈕是否可見:", button.is_displayed())
# 4.5 判斷元素是否可用
print("button按鈕是否可用:", button.is_enabled())
# 4.6 獲取頁面標題
print("頁面的title:", driver.title)
# 4.7 獲取當前頁面url
print(driver.current_url)
# 5.關閉瀏覽器
sleep(2)
driver.quit()
"""
輸出結果:
元素大小: {'height': 23, 'width': 78}
元素文字: 註冊使用者A
元素的value屬性值: 註冊A
元素的title屬性值: 加入會員A
button按鈕是否可見: True
button按鈕是否可用: True
頁面的title: 註冊A
file:///J:/PyCharmWorkSpace/firstproject/selenium/demo/2.html
"""