自動化測試-20.selenium常用JS代碼執行


前言:

  在工作中有些控件定位不到,需要操作,使用JS代碼去修改或者操作達到selenium不能做的操作。

1.Web界面的滑動

 1 #coding:utf-8
 2 from  selenium import webdriver
 3 import time
 4 
 5 d = webdriver.Firefox()
 6 d.implicitly_wait(10)
 7 d.maximize_window()
 8 d.get(r'https://www.tmall.com/')
 9 time.sleep(10)
10 # 用JS獲取HTML元素焦點,滾動條就自動滑動到焦點所在位置
11 # .mui-mbar-tab.mui-mbar-tab-cart.mui-mbar-tab-cart-nologin>div:nth-child(2)
12 # 查找class屬性值為"mui-mbar-tab mui-mbar-tab-cart mui-mbar-tab-cart-nologin"的元素下的第二個div元素
13 ele = d.find_element_by_css_selector('.mui-mbar-tab.mui-mbar-tab-cart.mui-mbar-tab-cart-nologin>div:nth-child(2)')
14 #print ele.text
15 # 獲取一個焦點
16 js = "arguments[0].scrollIntoView();"   
17 # 獲取ele元素所在的位置焦點,滾動條會自動的滑動到獲取的焦點位置
18 d.execute_script(js,ele)   

2.js來拖動滾動條滾動到具體位置

1 js_="window.scrollTo(400,700);"  
2 driver.execute_script(js_)  

3.針對js  非div 元素的 alert 彈出事件 可以用:

1 from selenium.webdriver import ActionChains  
2 alert = driver.switch_to_alert()  
3 #模擬鍵盤Enter 鍵  
4 ActionChains(driver).send_keys(Keys.ENTER).perform()  

4.用來選擇日期控件,輸入框

1 js="$('#SystemDate').val('2017-07-21');"    
2 driver.execute_script(js  

5.Python執行js刪除HTML元素的屬性值

 
         
'''
1. 刪除屬性值:document.getElementById('promote_start_date').removeAttribute('readonly')
2. 添加/修改屬性值:document.getElementById("p1").readonly=false
JS定位元素的方法:document.getElementById/getElementByName/getElementByClassName/getElementByTagName
'''

1 js="document.getElementById('promote_start_date').removeAttribute('readonly')" 2 driver.execute_script(js) 3 driver.find_element_by_id('promote_start_date').clear() 4 # 填寫促銷日期(promote_start_date)為日期控件的id 5 driver.find_element_by_id('promote_start_date').send_keys('1996-05-25')

6.工作中持續更新使用到的JS腳本


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM