Python+Selenium
- Selenium三剑客
- Selenium WebDriver 是客户端API
- Selenium Grid 可用于分布式测试(多环境测试)
- Selenium IDE 浏览器脚本
- 特点:开源,多浏览器,多平台,多语言
通常启动:
from selenium import webdriver
静默模式(handless):
from selenium import webdriverform selenium.webdriver.common.by
import Byfrom selenium.webdriver.support.ui
import WebDriverWaitfrom selenium.webdriver.support
import expected_codition as ECfrom selenium.webdriver.common.action_chains
import ActionChaisfrom selenium.webdriver.common.keys
import Keysimport requests
import time
chrome_options = webdriver.ChromeOptions()
#headless模式
chrome_options.add_argument('--headless')
#无界面选项
chrome_option.add_argument('--disable-gpu')
#强化定位
browser = webdriver.chrome(chrome_options=chrome_options)browser.get('URL')
常用代码:
browser = webdriver.Chrome()
browser.get('url')
browser.find_element_by_id('').clickbrowser.quit()
a = browser.fin..id('')
a.send_keys()
a.send_keys(Key.ENTER)
#键盘事件
a.clear()
a.submit()
a.text()
#获取文本
a.get_attribute('')
#获取元素值
browser.maximize_window()
#最大化
browser.minimize_window()
browser.set_window_size(x,y)
#设置分辨率
browser.get_window_size()
#获取分辨率
browser.refresh()
#刷新
browser.forword()/.back()
#--> and <--
browser.implicitly_wait()#隐性等待
browser.execute_script('')#运行JS代码
browser.switch_to_frame(browser.find_element_by_xpath('iframe'))#层级跳转
browser.switch_to.default_content()#退回主层级#处理弹窗
a = browser.switch_to.alerta.accept()/dismiss()
cookies = browser.get_cookies()