web控件的交互進階
常用的操作事件(右鍵點擊、頁面滑動、表單操作等)
https://selenium-python.readthedocs.io/api.html
?
ActionChains
https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains
?
?
?
?
?
?
?
https://sahitest.com/demo/clicks.htm
?
?
?
?
?
?
?
?
?測試案例二,紅框代碼接上上圖代碼:
?
?
?
用法三:將某個元素拖拽到某一個元素上
?
?
?http://sahitest.com/demo/dragDropMooTools.htm
?代碼接上上圖
?
?
?或者將action的部分替換成如下代碼也可以:
?
?
?又或者:
?
?
?
?
?
?
?
?
?
?
from time import sleep from selenium import webdriver from selenium.webdriver import ActionChains, Keys class Testone: def setup(self): self.driver=webdriver.Chrome() self.driver.implicitly_wait(5) def teardown(self): self.driver.quit() def test_ctrl(self): self.driver.get("http://sahitest.com/demo/label.htm") input_element1=self.driver.find_element("xpath","/html/body/label[1]/input") input_element2 = self.driver.find_element("xpath", "/html/body/label[2]/table/tbody/tr/td[2]/input") input_element1.click() action=ActionChains(self.driver) action.send_keys("username").pause(1) action.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).pause(2)#全選 action.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).pause(2)#復(fù)制 action.send_keys(Keys.BACK_SPACE).perform()#1 此處因為前面執(zhí)行了全選操作,所以這里執(zhí)行backspace會全部刪除,2 這里必須要一個perform()讓關(guān)于第一個輸入框的操作去執(zhí)行,否則你會看到程序一直在倒騰第二個輸入框 input_element2.click() action.key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).pause(2)#黏貼 action.send_keys(Keys.BACK_SPACE).perform() sleep(3)
?
?http://sahitest.com/demo/label.htm
打開同樣的網(wǎng)址,定位輸入框e1,點擊這個元素(為了將光標移到輸入框,為輸入做準備),向輸入框中輸入文字“username tom”,再把刪除一個字符,pause(1)是讓每一步操作都等待一秒
?實際操作中,使用find_element_by_xpath方法時提示:find_element_by_xpath? ??deprecated funcation(棄用函數(shù)),這時需要換成簡單的定位方法,如: find_element("xpath"," ")?
具體詳細解決方法見如下博客:https://blog.csdn.net/m0_54510474/article/details/121090473
?不過上述的某些操作似乎不需要借助action也能直接完成,詳細見如下博客:https://www.cnblogs.com/hzcya1995/p/13309155.html
?
TouchActions
?
?
?
?
?
?
?
?
?
?
?
?
?
?
本文摘自 :https://www.cnblogs.com/