分享一下早期Selenium学习笔记
一、初始化浏览器
browser = webdriver.Chrome()#还支持EDGE、火狐等
二、前进后退
# 1.3访问界面 # 访问百度首页 browser.get('https://www.baidu.com/') time.sleep(2) # # 打开哔哩哔哩 browser.get('https://www.bilibili.com/') time.sleep(2) # 后退到百度页面 browser.back() time.sleep(2) # 前进到bilibili页面 browser.forward() time.sleep(2)
三、定位页面元素
#可以根据id、class、xpath等定位,这里以id为例
driver = webdriver.Chrome() driver.get('https://www.baidu.com') el=driver.find_element('id','kw') el.send_keys('666') time.sleep(100) driver.close()
四、模拟鼠标操作
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
el=driver.find_element(by=By.XPATH,value='//*[@id="s-top-left"]/a[1]')
actions=ActionChains(driver)#创建动作链
actions.click(el)#... 添加一系列事件
actions.perform()#执行
time.sleep(2)
driver.close()
# 单击 click(el) # 右击 context_click(el) # 双击 double_click(el) # 拖拽 double_and_drop(el) # 悬停 move_to_element(el) # 执行 perform()
五、模拟键盘操作
el.send_keys(Keys.SPACE)
# 删除键 send_keys(Keys.BACK_SPACE) # 空格键 send_keys(Keys.SPACE) # 制表键 send_keys(Keys.TAB) # 回退键 send_keys(Keys.ESCAPE) # 回车 send_keys(Keys.ENTER) # 全选 send_keys(Keys.CONTRL,‘a’) # 复制 send_keys(Keys.CONTRL,‘c’) # 剪切 send_keys(Keys.CONTRL,‘x’) # 粘贴 send_keys(Keys.CONTRL,‘v’) # 键盘F1 send_keys(Keys.F1)
六、等待
#强制等待time.sleep(2)
#隐式等待driver.implicitly_wait(5)
七、切换
窗口切换:windows=driver.window_handles #windows是打开窗口的顺序列表,0代表首窗口,-1代表最后一个窗口
driver.switch_to.window(windows[0])
表单切换:switch_to.frame()
八、操作cookie
browser.get_cookies()
browser.add_cookie({'name':'坤哥', 'value':'帅哥'})
browser.delete_all_cookies()
九、断言使用
1.assert断言:
assert '百度新闻' in dr.title
assert 'https://news.baidu.com/' == dr.current_url
assert 'not found' not in dr.page_source
element = dr.find_element('id', 'header-wrapper')
assert element is not None
2.unittest断言
self.assertEqual(1, 1)
self.assertNotEqual(1, 2)
self.assertTrue(True)
self.assertFalse(False)
self.assertIn('a', ['a', 'b', 'c'])
self.assertNotIn('d', ['a', 'b', 'c'])
附unnitest断言示例:
import unittest class TestExample(unittest.TestCase): def test_equal(self): # 断言 1 和 1 是否相等 self.assertEqual(1, 1) def test_not_equal(self): # 断言 1 和 2 是否不相等 self.assertNotEqual(1, 2) def test_true(self): # 断言 True 是否为 True self.assertTrue(True) def test_false(self): # 断言 False 是否为 False self.assertFalse(False) def test_in(self): # 断言 'a' 是否在列表 ['a', 'b', 'c'] 中 self.assertIn('a', ['a', 'b', 'c']) def test_not_in(self): # 断言 'd' 是否不在列表 ['a', 'b', 'c'] 中 self.assertNotIn('d', ['a', 'b', 'c']) if __name__ == '__main__': unittest.main()
#测试秋招##牛客创作赏金赛#