selenium常用

selenium实用方法

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

#设置无头浏览器
def __init__(self):
	self.options = Options()
	self.options.add_argument('-headless')  # 无头参数
	self.driver =webdriver.Chrome(chrome_options=self.options,executable_path='E:\Python36\Scripts\chromedriver.exe')


#搜索生成新窗口,切换到新窗口
self.driver.get(response.url)
now_handle = self.driver.current_window_handle #会生成一个新窗口或新标签页的句柄,代表这个窗口的模拟driver
self.driver.find_element_by_xpath("//input[@id='xhmc']").send_keys(f"{self.word}")  # 搜索框输入
self.driver.find_element_by_xpath("//button[@type='submit']").click()  # 点击搜索按钮,会出现一个新窗口或者新标签
time.sleep(2)
all_handles = self.driver.window_handles  # 获取所有窗口句柄
for handle in all_handles:  #始终获得当前最后的窗口
	self.driver.switch_to.window(handle)
	html = self.driver.page_source 	#切换到新窗口,获取新窗口页面的元素

在使用xpath时不需要直接求出text,否则会抛出错误。
应使用
result = chrome.find_element_by_xpath('//div[@id="transTarget"]/p/span')
text = result.text
### Selenium 常用版本及其适用场景 #### 版本概述 Selenium 是一种广泛使用的自动化测试工具,支持多种浏览器和编程语言。其主要版本包括 Selenium 2.0、Selenium 3.0 和 Selenium 4.0。这些版本各自具有不同的特性以及适配的使用场景。 - **Selenium 2.0**: 这一版本引入了 WebDriver API 并将其与 Selenium RC 合并,形成了统一的接口用于 Web 应用程序的功能测试[^1]。它适用于早期基于 Java 或 Python 的项目开发阶段,在当时提供了较好的跨平台兼容性。 - **Selenium 3.0**: 此版本的一个显著变化是 Firefox 浏览器驱动被独立出来作为 GeckoDriver 使用。这意味着开发者需要单独下载并配置该组件才能运行针对 Firefox 的自动化脚本。此外,Selenium 3.x 继续沿用了大部分来自 Selenium 2.x 的功能集,因此对于那些尚未迁移到最新技术栈的应用来说仍然是一个可靠的选择。 - **Selenium 4.0**: 随着时间推移至更现代的技术需求下诞生的新一代产品——官方文档全面更新以反映关于WebDriver、Grid 及IDE等方面的最近改动情况[^2]。新特性的加入使得此版更适合处理复杂的网页交互操作比如拖放动作或者文件上传等高级行为模拟;同时也增强了网络条件设置能力以便更好地模仿真实用户的访问体验。 #### 兼容性考量 当考虑不同版本间的相互作用时,“同一类操作系统大版本升级期间”,应特别留意是否有持续支持旧有库函数的情况发生[^3]。这表明即使在同一类别下的OS之间也可能存在细微差异影响到具体实现细节上的表现形式。另外值得注意的是,为了保障整体系统的稳定性与可靠性,采用适当的最佳实践方法论来管控版本变更过程中的风险显得尤为重要[^4]。例如可以通过建立清晰定义好的分支管理策略配合详尽规划后的回归测试方案共同协作完成整个迁移流程而不会造成不可预见的问题出现。 ```python from selenium import webdriver # Example of initializing a browser session with different versions. def init_driver(version="latest"): if version == "selenium_2": # Assuming compatible setup exists for older environments. driver = webdriver.Firefox() # Directly integrated in earlier releases. elif version == "selenium_3": options = webdriver.ChromeOptions() driver = webdriver.Chrome(options=options) # Requires explicit gecko/chrome drivers path configuration. else: # Defaulting to latest (assumed as Selenium 4). service = Service(executable_path="/path/to/webdriver") driver = webdriver.Chrome(service=service) return driver ``` 上述代码片段展示了如何根据不同Selenium版本初始化相应的浏览器实例,并强调了随着版本演进而来的额外依赖项安装必要性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值