"""
Debug模式的浏览器,还可以在自动化过程中实现复用浏览器来提高调试效率:
1).当运行 selenium 自动化时,要求已经登录才能才做。这个时候我们可以提前登录,
运行脚本的时候复用已经打开的浏览器。
2).当调试了某个步骤很多的测试用例,前面N-1步已经成功,只需调试第N步。如果从
头开始运行脚本,耗时过多,这时我们可以直接复用浏览器只操作第N步。
复用浏览器的特点:
webdriver启动时将不再创建新的浏览器窗口 将运用已打开的浏览器的当前页面,对元
素的进行操作 。
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
import os
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
"""
设置浏览器debug模式:
使用编写的脚本chrome.bat,以debug的方式启动谷歌浏览器,
脚本内容如下:chorme.exe --remote-debugging-port=9222,放在d盘下
必须用脚本来运行,os.system无效
"""
# os.popen(r"d:/chrome.bat")
#设置浏览器选项,加载浏览器驱动
options = webdriver.ChromeOptions()
options.debugger_address = "127.0.0.1:9222"
driver = webdriver.Chrome(options=options)
# driver.get("https://www.baidu.com")
locator = (By.ID,"kw")
el = WebDriverWait(driver,5).until(EC.visibility_of_element_located(locator))
el.send_keys("hello world")
"""通过debug模式浏览器实现在已打开的浏览器上继续运行自动化脚本调试
操作方式:
第一:注释掉打开浏览器的代码,让他不重新打开浏览器
1 # os.popen("d:/chrome.bat")
第二:把已经执行完的步骤注释掉
1 # driver.get("https://cart.taobao.com/cart.htm")
2 #
3 # driver.find_element_by_id('fm‐login‐id').send_keys('19119282264')
4 # driver.find_element_by_id('fm‐login‐password').send_keys('cema6666..')
5 # driver.find_element_by_xpath("//div[@class='fm‐btn']").click()"""
python杀掉chrome以及chromedriver进程,否则可能出现问题
os.system("taskkill /im chromedriver.exe /F")
os.system("taskkill /im chrome.exe /F")