一、Selenium可以执行js,这使得Selenium拥有更为强大的能力。既然能执行js,那么js能作的事,Selenium应该大部分也能作。php
二、直接使用js操做页面,能解决不少click()不生效的问题。python
三、页面滚动到底部,顶部。jquery
四、处理富文本,时间控件的输入。面试
打开浏览器,按F12打开开发者模式。api
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="2020‐12‐30"') time.sleep(3) print(self.driver.execute_script('return document.getElementById("train_date").value'))
一、文件上传
input标签能够直接使用send_keys(文件地址)上传文件。测试
用法:ui
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)
二、弹框处理机制
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,群内会有不按期的发放免费的资料连接。若是你有好的学习也资料能够私聊发我,我会注明出处以后分享给你们。