因为公司是支付业务,所有密码这一块,就有一个插件,不能进行复制粘贴,selenium的input也不能进行输入,这个适合我们就可以写一个登录测试用例,不写输入密码与登录按钮,手动输入。
登录之后呢,就是我们的用户界面,这个时候浏览器就相当于有了我们的用户信息了,我们可以直接使用selenium的get方法,去打开系统的其他页面。
接管chrome
chrome.exe地址 [--headless] --remote-debugging-port=9222 --user-data-dir="目标路径"
在cmd命令中打开一个端口9222的谷歌浏览器
值得注意的是,需要在cmd打开浏览器,否则pycharm中直接运行代码会显示链接不到目标端口
步骤如下:
找到谷歌浏览器的安装位置,找到chrome.exe的位置
./chrome.exe [--headless] --remote-debugging-port=9222 --user-data-dir="目标路径"
这里的目标路径随意,主要用于存放打开浏览器的配置缓存的
2. 也可以使用win+r 输入cmd 输入,该方法需要将chrome加入环境便利path,
chrome.exe [--headless] --remote-debugging-port=9222 --user-data-dir="目标路径"
代码部分需要设置
options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9988")
driver = webdriver.Chrome(options=options)
这里只写了chrome的,其他浏览器不知道,后面可以放进配置文件config去配置浏览器是否需要打开指定浏览器。这个可以参考前面的框架,将该代码放进浏览器的初始化部分。
值得注意的是,需要将浏览器最小化,否则不能输入,直接切换程序,能定位元素,但是不能对浏览器进行操作
初始化浏览器
from selenium import webdriver
from libs.utils.yaml_util import read_yaml
def browser_init():
web_config_data = read_yaml(r'\config\config.yaml')['browser']
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)
try:
driver.maximize_window()
except:
return driver
if __name__ == '__main__':
global driver
driver = browser_init()
复制代码