python+selenium 2--实现Chrome随机打开搜索结果

本文介绍使用Python和Selenium实现Chrome自动搜索,并通过随机数选取搜索结果进行访问的完整过程,包括窗口切换和截图保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前章记录了简单实现Chrome自动搜索,此时想完善一下测试场景,于是想着添加了一个随机打开搜索结果的动作

一、根据百度搜索页面的html找到搜索结果的标签类名为 result

elements=driver.find_elements_by_class_name('result')

二、尝试打开获取到的第一个跳转,点击成功

elements[0].find_element_by_tag_name('a').click()

三、加入了随机数,窗口打开正常

#导入随机数模块
import random 

num=random.randint(0,9)
elements[num].find_element_by_tag_name('a').click()

四、此时浏览器上有2个窗口,新打开的窗口没有自动聚焦。由于只有搜索打开动作,我这里只简单的用句柄来判断一下

#定义当前窗口句柄(百度)
baidu_handle = driver.current_window_handle
#获取当前窗口句柄集合
handles = driver.window_handles
print(handles)
# 获取新窗口
new_handle = None
for handle in handles:
    if handle != baidu_handle:
        #捕获新打开的窗口
        new_handle = handle
print('switch to ', handle)
#新窗口打开搜索结果
driver.switch_to.window(new_handle)

成功!

详细代码如下:

#coding=utf-8
#导入时间模块
import time
#导入随机数模块
import random 
from selenium import webdriver

#打开Chome浏览器
driver=webdriver.Chrome()
#浏览器窗口最大化
driver.maximize_window()

first_url='http://www.baidu.com'
#打开百度
driver.get(first_url)
print ("access to %s " %(first_url))

#搜索框输入hello world
driver.find_element_by_id("kw").send_keys("hello world")
#点击搜索按钮
driver.find_element_by_id("su").click()
time.sleep(2)
#搜索页面的截图,保存到本地桌面
driver.save_screenshot('baidu.png')

#根据百度页面html分析,找到跳转元素
elements=driver.find_elements_by_class_name('result')
#此处取搜索结果第一个
#elements[0].find_element_by_tag_name('a').click()

#此处取搜索结果0~9任一个
num=random.randint(0,9)
elements[num].find_element_by_tag_name('a').click()

#定义当前窗口句柄(百度)
baidu_handle = driver.current_window_handle
#获取当前窗口句柄集合
handles = driver.window_handles
print(handles)
# 获取新窗口
new_handle = None
for handle in handles:
    if handle != baidu_handle:
        #捕获新打开的窗口
        new_handle = handle
print('switch to ', handle)
#新窗口打开搜索结果
driver.switch_to.window(new_handle)
#截图,保存到本地桌面
driver.save_screenshot('result.png')
time.sleep(3)
#退出整个浏览器
driver.quit()
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值