selenium元素定位

'''
1.你的自動化是如何落地的? 遇到了什麼難點
2. 遇到哪些比較難定位的元素,你是如何定位的?
3. 驗證碼問題你是如何解決的
4. 你的自動化框架是如何設計的?
'''

"""
測試流程
    1). 立項-->文檔-->代碼編寫-->單元測試-->測試准入-->功能測試-->性能測試-->集成測試-->測試報告-->上線部署-->線上迴歸
何時開始自動化纔是最好的時間點
    1). 測試准入-->自動化切入點1
    2). 集成測試-->自動化切入點2
    3). 線上迴歸-->自動化切入點3
落地過程當中具體難點有哪些
    1). 前端代碼改動大,頻繁或者不規範致使元素很差定位
    2). 自動化剛開始時,測試人員編碼規範以及架構設計不統一
"""
'''下拉框如何定位的'''
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.jd.com")
driver.set_window_size(600,800)
# js 代碼 滾動條滑動到最下方
js = "window.scrollTo(10000,10000);"
driver.execute_script(js)

'''時間控件如何定位'''
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.12306.cn/index/")
# 把控件變成可輸入的
js = "document.getElementById('train_date').removeAttribute('readonly')"
driver.execute_script(js)
driver.find_element_by_id("train_date").clear()
driver.find_element_by_id("train_date").send_keys("2019-5-1")

'''web彈出提示框如何處理'''

# 第一種頁面彈框處理如:百度頁面的登陸
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_link_text("登陸").click()
time.sleep(3)

driver.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn").click()
driver.find_element_by_id("TANGRAM__PSP_10__userName").send_keys("aaa")

# 第二種瀏覽器自帶彈出框定位

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("file:///D:/pycharm/Interface_new_2019-3-7_mooc/Util/test_message.html")
# 操做系統彈框
driver.find_element_by_id("alert").click()
alert = driver.switch_to.alert
time.sleep(2)
alert.accept()

driver.find_element_by_id("confirm").click()
alert = driver.switch_to.alert
time.sleep(1)
alert.accept()

driver.find_element_by_id("prompt").click()
alert = driver.switch_to.alert
time.sleep(1)
alert.send_keys("aaaa")
time.sleep(2)
alert.accept()

"""如何切換控制瀏覽器句柄"""
driver = webdriver.Chrome()
driver.get("http://www.sohu.com/")

window = driver.current_window_handle
driver.find_element_by_link_text("新聞").click()
windows = driver.window_handles

for current_windows in windows:
    if current_windows != window:
        driver.switch_to.window(current_windows)

# 也能夠這樣寫(-1就是表明最新的)
# driver.switch_to.window(windows[-1])

time.sleep(2)
driver.quit()
相關文章
相關標籤/搜索