標題目錄
- 一、Selenium在當前頁進行js互動
- 二、Selenium中呼叫js
- 三、檔案上傳、彈框處理
- 四、最后
一、Selenium在當前頁進行js互動
1、Selenium能夠執行js,這使得Selenium擁有更為強大的能力,既然能執行js,那么js能做的事,Selenium應該大部分也能做,
2、直接使用js操作頁面,能解決很多click()不生效的問題,
3、頁面滾動到底部,頂部,
4、處理富文本,時間控制元件的輸入,

打開瀏覽器,按F12打開開發者模式,
二、Selenium中呼叫js
execute_script:執行js
return:可以回傳js的回傳結果
execute_script:arguments傳參
class TestJS(Base): def test_js_scroll(self): self.driver.get('https://www.baidu.com') self.driver.find_element_by_id('kw').send_keys('selenium') # self.driver.find_element_by_id('su').click() #點擊百度一下 element = self.driver.execute_script('return document.getElementById("su")') #點擊百度一下 element.click() # 點擊百度一下 self.driver.execute_script('document.documentElement.scrollTop=5000') # 滾動到最底部 time.sleep(2) self.driver.find_element_by_xpath('//*[@id="page"]/div/a[6]/span[2]').click() time.sleep(3) for code in [ 'return document.title', 'return JSON.stringify(performance.timing)' ] : print(self.driver.execute_script(code)) # 列印標題和內容


def test_datetime(self): self.driver.get('https://www.12306.cn/index/') time.sleep(2) time_element = self.driver.execute_script('a=document.getElementById("train_date");a.removeAttribute("readonly")') time.sleep(1) self.driver.execute_script('document.getElementById("train_date").value="https://www.cnblogs.com/flowToken1024532/p/2020‐12‐30"') time.sleep(3) print(self.driver.execute_script('return document.getElementById("train_date").value'))
三、檔案上傳、彈框處理
1、檔案上傳
input標簽可以直接使用send_keys(檔案地址)上傳檔案,
用法:
el = driver.find_element_by_id('上傳按鈕id')
el.send_keys('檔案路徑+檔案名')

def test_file_upload(self): self.driver.get('https://image.baidu.com/') self.driver.find_element_by_xpath('//*[@id="sttb"]/img[1]').click() time.sleep(2) self.driver.find_element_by_id('stfile').send_keys('E:\\Project_allcode\\photo\\12.png') time.sleep(3)
2、彈框處理機制

def test_alert(self): self.driver.get('https://www.runoob.com/try/try.php?filename=jqueryui‐api‐droppable') self.driver.switch_to_frame('iframeResult') drag = self.driver.find_element_by_id('draggable') #第一個元素 drop = self.driver.find_element_by_id('droppable') # 第二個元素 action = ActionChains(self.driver) action.drag_and_drop(drag, drop).perform() # 把第一個元素拖拽到第二個元素那里 time.sleep(2) print('點擊 alert 確認') self.driver.switch_to.alert.accept() # 切換到彈框 self.driver.switch_to.default_content() # 點擊彈框的確認按鈕 self.driver.find_element_by_id('submitBTN').click() # 點擊“點擊運行”按鈕 time.sleep(3)
四、最后
對軟體測驗、介面測驗、自動化測驗、軟體測驗零基礎入門、性能測驗、LR腳本開發、python自動化全堆疊、面試經驗感興趣可以175317069,群內會有不定期的發放免費的資料鏈接,如果你有好的學習也資料可以私聊發我,我會注明出處之后分享給大家,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/19511.html
標籤:其他
