python控制已经打开的浏览器_使用python+selenium控制手工已打开的浏览器心得
python控制已经打开的浏览器_使用python+selenium控制手工已打开的浏览器
weixin_39620662 2020-11-29 22:16:33 286 收藏
文章标签: python控制已经打开的浏览器
我们可以利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。
打开cmd,在命令行中输入命令:
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
注意-----还有一个更好的方法,把上面的这句话复制一下,在桌面上新创建一个快捷方式,把这句话填进去,方便启动浏览器的副本
对于-remote-debugging-port值,可以指定任何打开的端口。
对于-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。
还有,不要忘了在环境变量中PATH里将chrome的路径添加进去。
此时会打开一个浏览器页面,我们输入百度网址,我们把它当成一个已存在的浏览器:
1001753-20181018205200816-1642262967.png
现在,我们需要接管上面的浏览器。新建一个python文件,运行以下代码:
from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.options import Options
#options = webdriver.ChromeOptions()
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
#我们可以利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。
#打开cmd,在命令行中输入命令:
#chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
#注意-----还有一个更好的方法,把上面的这句话复制一下,在桌面上新创建一个快捷方式,把这句话填进去,方便启动浏览器的副本
#注意一定要先打开一个浏览器的副本
chrome_driver = "C:\Program Files\Google\Chrome\Application\chromedriver.exe"
driver = webdriver.Chrome(chrome_driver, options=chrome_options)
#driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
# 这个参数的用法会报警,能正常使用
#driver = webdriver.Chrome(option=option, executable_path=executable_path)
driver.get("http://jkda.jxhfpc.gov.cn")
sleep(1)
driver.find_element_by_css_selector("#_easyui_textbox_input1").send_keys("360723")
driver.find_element_by_css_selector("#_easyui_textbox_input3").send_keys("360723")
print(driver.title)
会发现打印出了 “居民健康档案系统” 的网页标题。这样我们就实现了对一个已打开的浏览器的控制。
更多需求可以自己在此基础上进行修改。
ps:
driver.maximize_window()这个方法貌似不能用,报错:operation is unsupported with remote debugging:远程调试不支持操作
转自http://www.cnblogs.com/lovealways/p/9813059.html
转自http://www.teachmeselenium.com/2018/08/11/how-to-connect-selenium-to-an-existing-browser-that-was-opened-manually/
翻译http://www.cnblogs.com/lovealways
相关资源:SeleniumWebdriver使用已打开的浏览器_selenium调用已打开浏览器...