1. 程式人生 > 其它 >Wpf UI框架 MaterialDesign 的使用記錄

Wpf UI框架 MaterialDesign 的使用記錄

在UI的自動化測試中,我們也是需要使用JS來處理一些特殊的互動,比如針對瀏覽器的滑動操作,

以及針對富文字的特殊處理,和針對只讀屬性的時間控制元件的處理。下面通過實際的案例來演示這部分的

具體應用和案例實戰。

瀏覽器的滑動

瀏覽器的滑動主要分為瀏覽器的向上和向下,比如我們就以百度搜索引擎為案例,我們進行關鍵

字的搜尋後,想點幾下一步的操作,但是下一步無法展示出來,就需要把頁面滑動到底部才可以展示

出來。下面通過實際的案例來演示下這部分的具體應用

from selenium import webdriver
import time as t

driver=webdriver.Chrome()
driver.maximize_window()
driver.get(
'https://www.baidu.com/') so=driver.find_element_by_id('kw').send_keys('qwertyuiop') t.sleep(5) so=driver.find_element_by_id('su').click() t.sleep(5) #向下滑動 down="var q=document.documentElement.scrollTop=10000" driver.execute_script(down) t.sleep(5) #向上滑動 up="var q=document.documentElement.scrollTop=0" driver.execute_script(up) t.sleep(
5) #點選下一頁 driver.find_element_by_link_text('下一頁 >').click() t.sleep(5) driver.quit()

富文字

現在網際網路的產品基本都會使用到富文字的資訊,針對富文字的特性,其實我們有兩個思路來

實現元素的定位方式,一種是iframe的思路,另外一種是JS的方式。如下具體顯示富文字的資訊

js方式

from selenium import webdriver
import time as t

def richText(driver,content):
  '''
  實現在富文本里面輸入內容
  :param driver: webdriver例項化後的物件資訊
  :param content: 富文本里面需要輸入的文字內容
  :return:
  
''' js="document.getElementById('ueditor_0').contentWindow.document.body.innerHTML='{0}'".format(content) driver.execute_script(js) driver=webdriver.Chrome() driver.get('https://uutool.cn/ueditor/') t.sleep(5) richText(driver=driver,content='晨黎是最最最好的') t.sleep(5) driver.quit()

iframe

driver=webdriver.Chrome()
driver.get('https://uutool.cn/ueditor/')
t.sleep(5)
# 進入iframe框架
driver.switch_to.frame('ueditor_0')
t.sleep(3)
driver.find_element_by_xpath('/html/body/p').send_keys('晨黎天下第一')
t.sleep(5)
driver.quit()

時間控制元件

在如上的程式碼中可以很清晰的看到它是隻讀屬性,那麼我們需要填寫時間的屬性,具體解決問題的步驟為:

1、取消時間控制元件的只讀屬性

2、取消只讀屬性後,操作input控制元件的value,我們知道input裡面輸入的內容最終是在value的屬性裡面。

下面通過具體的程式碼來實現這部分,實現在時間控制元件中填寫我們想選擇的時間,具體實現的程式碼為:

from selenium import webdriver
import time as t


def startTime(driver,content):
    '''開始時間控制元件'''
    js="$(\"input[placeholder='開始時間≥當前時間']\").removeAttr('readonly');" \     取消制只讀屬性
       "$(\"input[placeholder='開始時間≥當前時間']\").attr('value','{0}')".format(content)
    driver.execute_script(js)

def endTime(driver,content):
    '''結束時間控制元件'''
    js="$(\"input[placeholder='結束時間>開始時間']\").removeAttr('readonly');" \      取消只讀屬性
       "$(\"input[placeholder='結束時間>開始時間']\").attr('value','{0}')".format(content)
    driver.execute_script(js)

driver=webdriver.Chrome()
driver.get('file:///C:/Users/%E5%88%92%E8%88%B9%E4%B8%8D%E9%9D%A0%E6%B5%86%E9%9D%A0%E6%B5%AA/Desktop/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9%20(2)/Time/index.html')
t.sleep(5)
startTime(driver=driver,content='2021-12-05 00:00:00')
t.sleep(3)
endTime(driver=driver,content='2021-12-06 11:00:00')
t.sleep(3)
driver.quit()