selenium技巧:谷歌chrome浏览器准备:以调试模式在指定端口打开,指定个人数据存放目录、连接控制已打开的浏览器、标签页新建/切换,操作

这篇博客介绍了如何通过Selenium与Chrome浏览器的远程调试端口连接,以控制已经打开的浏览器实例。作者提供了命令行启动Chrome的参数,并展示了Python代码示例,用于切换和管理浏览器的标签页。此外,还演示了如何利用JavaScript执行新标签页的打开和切换操作。
摘要由CSDN通过智能技术生成

1)selenium控制已打开的浏览器

谷歌浏览器准备:以调试模式在指定端口打开、指定个人数据存放目录
cmd运行如下命令:需建chrome环境变量
或直接建快捷方式:右键属性–目标里 接上chrome.exe后命令如下
chrome.exe --remote-debugging-port=9222 --user-data-dir="F:\Demo\python\common\seleniumChromeProfile"

from selenium import webdriver
from selenium.webdriver.chrome.options import Options


'''谷歌准备
cmd运行如下命令:需建chrome环境变量
或直接建快捷方式:右键属性--目标里 接上chrome.exe后命令
chrome.exe --remote-debugging-port=9222 --user-data-dir="F:\Demo\python\common\seleniumChromeProfile"
''' 

chrome_options = Options()
#=====连接到已打开的谷歌,端口号为9222===========
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "../common/chromedriver.exe"
browser = webdriver.Chrome(chrome_driver, options=chrome_options)

print(browser.title)

2)标签页新建/切换,操作

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

'''谷歌准备
cmd运行如下命令:需建chrome环境变量
或直接建快捷方式:右键属性--目标里 接上chrome.exe后命令
chrome.exe --remote-debugging-port=9222 --user-data-dir="F:\Demo\python\common\seleniumChromeProfile"
''' 
chrome_options = Options()
#=====连接到已打开的谷歌,端口号为9222===========
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "../common/chromedriver.exe"
browser = webdriver.Chrome(chrome_driver, options=chrome_options)
print(browser.title)


# ======标签管理操作等========
handle=browser.current_window_handle #找到当前标签页handle
browser.execute_script("window.open()") # 用js打开新标签页面
handles = browser.window_handles # 获取当前所有标签页句柄


browser.switch_to.window(handles[1]) #切换到js打开的标签
browser.get('http://www.sogou.com')
print(browser.title)

#无效,快捷键打开新标签:ctrl+t
# browser.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.CONTROL,"t");

browser.switch_to.window(handle) #切换回原标签页
print(browser.title)


# # 对窗口进行遍历
# for h in handles:
# 	# 筛选新打开的窗口B
# 	if h!=handle:
# 		# 切换到新打开的窗口B
# 		browser.switch_to_window(handles[1])

Selenium中,有三种等待元素可见的方式: sleep强制等待、implicitly_wait()隐性等待和WebDriverWait()显示等待。 首先是sleep强制等待,通过使用time库的sleep函数来暂停程序的执行一段时间,然后再继续执行后面的代码。这种方式的优点是代码简单明了,缺点是如果等待时间设置得不合理,可能会导致程序报错或者浪费时间。个人看法是简单粗暴,根据网站的响应速度和自己的网速来设置合理的休眠时间。 其次是implicitly_wait()隐性等待,通过在webdriver对象上调用implicitly_wait()方法,将等待时间设置为一个特定的值,然后在执行每个查找元素的操作时,Selenium会等待指定的时间,直到元素可见或者超时。这种方式的优点是代码简介,缺点是可能会造成等待时间过长,浪费时间。 最后是WebDriverWait()显示等待,这种方式通过使用WebDriverWait类和expected_conditions模块来实现。首先需要导入相应的包:selenium.webdriver.support、expected_conditions和WebDriverWait。然后使用WebDriverWait对象来设置等待时间,直到特定条件满足。这种方式的优点是可以根据特定条件等待元素可见,缺点是导入包路径复杂,编写代码稍显繁琐。 综上所述,Selenium等待元素可见的三种方式分别是:sleep强制等待、implicitly_wait()隐性等待和WebDriverWait()显示等待。具体使用哪种方式取决于个人的需求和偏好。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Selenium 设置元素等待的三种方式详解](https://blog.csdn.net/weixin_43831559/article/details/125899096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值