汇总python selenium经典案例代码

判断某个页面是否存在某个ID:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.chrome.service import Service
# 创建浏览器驱动
driver = webdriver.Chrome(service=Service(r'C:\software\chrome_soft\chromedriver-win32\chromedriver.exe'))
# 打开登录页面
driver.get("http://****.com/Home/User/login.html")
# 判断用户名输入框是否存在
try:
    # 查找用户名输入框元素
    username_input = driver.find_element("id", "userName")
    print("用户名输入框存在")
except NoSuchElementException:
    print("用户名输入框不存在")

# 关闭浏览器
driver.quit()

模拟用户登录: 

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 创建浏览器驱动
driver = webdriver.Chrome(service=Service(r'C:\software\chrome_soft\chromedriver-win32\chromedriver.exe'))

# 打开登录页面
driver.get("http://****.com/Home/User/login.html")

# 查找用户名输入框和密码输入框元素
username_input = driver.find_element(By.ID, "userName")
password_input = driver.find_element(By.ID, "password")

# 输入用户名和密码
username_input.send_keys("USERNAME")
password_input.send_keys("PASSWORD")

# 查找并点击登录按钮
login_button = driver.find_element(By.XPATH, "//input[@value='登录']")
login_button.click()

# 等待登录完成(可以根据实际情况进行调整)
WebDriverWait(driver, 10).until(EC.url_contains("962360.com/Home"))

# 打印登录后的页面标题
print("登录成功,当前页面标题为:", driver.title)

# 关闭浏览器
driver.quit()

XPath 定位器 (By.XPATH):通过 XPath 表达式来定位元素,可以使用绝对路径或相对路径。

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")

# 通过绝对路径定位元素
element = driver.find_element(By.XPATH, "/html/body/div[1]/div[2]/input")

# 通过相对路径定位元素
element = driver.find_element(By.XPATH, "//input[@id='elementID']")

CSS Selector 定位器 (By.CSS_SELECTOR):通过 CSS 选择器来定位元素。

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")

# 通过标签名定位元素
element = driver.find_element(By.CSS_SELECTOR, "input")

# 通过类名定位元素
element = driver.find_element(By.CSS_SELECTOR, ".elementClass")

# 通过ID选择器定位元素
element = driver.find_element(By.CSS_SELECTOR, "#elementID")

ID 定位器 (By.ID):通过元素的 ID 属性来定位元素。

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")

element = driver.find_element(By.ID, "elementID")

Class 定位器 (By.CLASS_NAME):通过元素的 Class 属性来定位元素。

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")

element = driver.find_element(By.CLASS_NAME, "elementClass")

selenium为什么不推荐使用xpath定位?

selenium使用xpath定位时采用遍历页面的方式,性能指标较差。另外xpath定位有通过绝对路径定位的,有时会不准确;
而用css选择器定位比较简洁,运行速度更快,通常用于性能要求严格的场景。

time.sleep的使用

在 Selenium 中,time.sleep() 通常用于等待页面元素加载完成或等待页面动作执行完毕。例如,在页面跳转后,需要等待页面加载完成才能进行下一步操作:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("https://www.example.com")

# 等待页面加载完成
time.sleep(3)

# 定位元素并进行操作
element = driver.find_element_by_id("elementID")
element.click()

# 关闭浏览器
driver.quit()

在这个示例中,使用 time.sleep(3) 等待 3 秒,确保页面加载完成后才去定位元素并进行操作。注意,time.sleep() 是一个简单的暂停函数,如果页面加载时间不确定,最好使用 Selenium 提供的等待方法来等待元素加载完成,比如 WebDriverWaitexpected_conditions


 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值