Python 第三方模块之 selenium - 模拟操作 Chrome 浏览器

1、安装selenium

1.1、Python 安装 selenium 模块

pip install selenium

1.2、下载驱动

选择和自己chrom版本相对应的驱动到本地,下载地址

http://npm.taobao.org/mirrors/chromedriver/

2、Python 操作

from selenium import webdriver
import time
import json


# 创建Chrome对象,需要先下载驱动。
driver = webdriver.Chrome('D:\home\chrom\chromedriver.exe')     
driver.maximize_window()

# 操作这个对象.
driver.get('https://baidu.com')     # get方式访问
time.sleep(5)

# 刷新页面
driver.get(driver.current_url)  # 重新获取页面也可以算是刷新
driver.refresh()

# 通过 xpath 获取元素
el = driver.find_element_by_xpath("//input[@type='text']")
# 输入
el.send_keys('***********')

# 通过 id 获取元素
el = driver.find_element_by_id("submit-login")
# 点击
el.click()

# 通过 class_name 获取元素
el = driver.find_element_by_class_name("shadow-close")
el.click()

# 获取网站cookie
diccookie=driver.get_cookies()
fw=open('cookie.txt','w')
json.dump(diccookie,fw)
fw.close()

# 使用 cookie
fr=open('cookie.txt','r')
cookielist=json.load(fr)
fr.close()
for cookie in cookielist:
    driver.add_cookie(cookie)

# 保存截图到本地
driver.get_screenshot_as_file('foo.png')

# 滚动到浏览器顶部
js_top = "var q=document.documentElement.scrollTop=0"
# 滚动到浏览器底部
js_bottom = "var q=document.documentElement.scrollTop=10000"
js_bottom2 = "window.scrollTo(0,document.body.scrollHeight)"
# 应用js
driver.execute_script(js_top)

# 使用完, 记得关闭浏览器, 不然chromedriver.exe进程为一直在内存中.
driver.quit()   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您可以使用 Selenium Grid 进行远程连接和分布式测试。Selenium Grid 是 Selenium 的组件,它允许您在不的机器上同时运行测试用例,并将测试任务分配给不同的浏览器实例。 要使用 Selenium Grid,您需要按照以下步骤进行操作: 1. 安装 Java Development Kit(JDK):Selenium Grid 是使用 Java 编写的,因此您需要安装 JDK。 2. 下载 Selenium Server:您可以从 Selenium 官方网站下载最新版本的 Selenium Server JAR 文件。 3. 启动 Selenium Hub:Selenium Hub 是 Grid 的中心节点,它负责接收来自客户端的测试请求并将其分配给可用的节点。您可以使用以下命令启动 Selenium Hub: ``` java -jar selenium-server-standalone.jar -role hub ``` 4. 启动 Selenium Node:Selenium Node 是 Grid 的节点,它负责实际运行测试用例。您可以在不同的机器上启动多个 Selenium Node,以便并行运行测试。您可以使用以下命令启动 Selenium Node: ``` java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone.jar -role node -hub http://localhost:4444/grid/register ``` 其中,`-Dwebdriver.chrome.driver` 指定 Chrome 驱动程序的路径,`-hub` 指定 Selenium Hub 的 URL。 5. 运行测试用例:现在您可以在客户端中编写测试用例,并将其配置为通过 Selenium Grid 运行。在测试用例中,您需要指定远程节点的 URL,以便将测试任务分配给正确的节点。 以下是一个使用 PythonSelenium 的示例代码片段,用于远程连接到 Selenium Grid 并运行测试: ```python from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities # 配置远程节点的 URL remote_url = "http://<node_ip>:<node_port>/wd/hub" # 配置所需的浏览器 capabilities = DesiredCapabilities.CHROME.copy() capabilities['platform'] = 'WINDOWS' # 连接到远程节点 driver = webdriver.Remote(remote_url, desired_capabilities=capabilities) # 执行测试操作 driver.get("https://www.example.com") ``` 请将 `<node_ip>` 替换为远程节点的 IP 地址,`<node_port>` 替换为远程节点的端口号。 这样,您就可以使用 Selenium Grid 进行远程连接浏览器并进行分布式测试了。希望对您有帮助!如有任何问题,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值