selenium常用实例demo

在这里插入图片描述

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import random
import time


# 用来待时间操作
def wait(n):
    time.sleep(random.randint(1, n))


# 实例化参数对象
options = webdriver.ChromeOptions()
# 加入参数, 使用options.add_argument()
# 常用参数
# options.add_argument("--headless") # 无头, 也就是没有界面。
# options.add_argument("--start-maximized")  # 打开时页面最大化
# 保留用户数据存储的路径,有些需要保存登陆信息, 可以使用命令行启动chrome,输入用户信息保存,再运行自动化。
# import os
# exe_path = r'"C:\Program Files\Google\Chrome\Application\chrome.exe" -remote-debugging-port=9015 --user-data-dir=E:\wx_wifi\chrome-userdata'
# os.system(exe_path)
options.add_argument(r"--user-data-dir=F:\chrome_data")
# 有些网站会使用反爬技术识别,是不是webdriver自动化的, 可以使用先人工手动打开chrome, 再通过端口运行,这样可以逃避识别。 参考上述exe_path的命令打开。
# options.add_experimental_option("debuggerAddress", "127.0.0.1:9015")
# 它允许用户在Chrome浏览器中启动浏览器时排除特定的Chrome命令行开关,enable-automation 是一个Chrome命令行开关,用于启用Chrome浏览器的自动化功能。禁用它可以帮助防止被一些自动化检测工具检测到。
options.add_experimental_option('excludeSwitches', ['enable-automation'])


# 实例化chrome驱动对象, 指定驱动的位置与参数
driver = webdriver.Chrome(r'./chromedriver-122.exe', options=options)
# 设置implicitly_wait,implicitly_wait 的超时时间是从 WebDriver实例化后就开始计算的,直到找到元素或超时为止。如果在超时时间内元素仍然没有加载完成,WebDriver 会抛出一个异常。 只对find_element, find_elements方法的调用。
driver.implicitly_wait(60*3)

# 打开网页
driver.get('https://baidu.com')

# -------------
# 查找标签元素
# 返回单个WebElement对象
# wait(5)
# element = driver.find_element_by_xpath('//input[@id="account"]')

# 返回列表, 列表元素为WebElement对象
# element = driver.find_elements_by_xpath('/html')
# -------------

# 点击元素, 按钮所在的标签, 所含的元素包含里面的都没有问题, 会在查找到元素的“正中心”点击
# element.click()

# 输入框, 先清除文字,后输入文字。
# element.clear()
# element.send_keys('要输入的字符串')

# 查看元素的文本内容(可以html界面上展示的文本内容, <> 这里面的内容 <>)
# print(element.text)

# 获取输入框里面的文字
# print(element.get_attribute('value'))

# 如果有些元素没有展示在界面上,text可能获取不了的, 可以用 innerText 或者textContent
# print(element.get_attribute('innerText'))

# 查看元素属性的值, 这个不在html界面显示, 但可以查看源码看到。
# <input id="account" type="text" placeholder="请输入账号" autofocus="autofocus">
# print(element.get_attribute('placeholder'))

# 获取整个元素(包含父元素)里面的元素对应的HTML文本内容, outerHTML
# print(element.get_attribute('outerHTML'))

# 获取单个元素里面的元素对应的HTML文本内容, innerHTML  与 outerHTML 只差一个父元素的显示。
# element = driver.find_element_by_xpath('//div[@class="country-panel-code"]')
# print(element.get_attribute('innerHTML'))

# 键盘操作 全选, 复制, 贴贴
# element = driver.find_element_by_xpath('//input[@id="account"]')
# wait(2)
# element.send_keys(Keys.CONTROL, 'a')
# wait(2)
# element.send_keys(Keys.CONTROL, 'c')
# element = driver.find_element_by_xpath('//input[@id="pwd"]')
# element.send_keys(Keys.CONTROL, 'v')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值