浏览器自动化 - 等待XPath元素加载

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# 配置对象
options = webdriver.ChromeOptions()
# 隐藏“Chrome正受到自动测试软件的控制。”
options.add_experimental_option('excludeSwitches', ['enable-automation'])


def waitxpath(driver, xpath):
    try:
        # 显示等待10s,每秒判断元素是否加载完成
        WebDriverWait(driver, 10, 1).until(
            lambda x: x.find_element(By.XPATH, value=xpath)
        )
    except Exception as e:
        raise e

# chromedriver是当前路径,已经下载好的chromeweb驱动。
chromedriver = 'chromedriver'
driver = webdriver.Chrome(executable_path=chromedriver, options=options)
driver.get('https://www.baidu.com/')
# 搜索框元素对应的XPath,与XPath语法相关的内容
# 在浏览器开发者工具模式下,可以直接通过找到你想要操作的元素,然后选择复制--> XPath。
search_input_xpath = '//*[@id="kw"]'

# 显式等待
waitxpath(driver, search_input_xpath)

# 通过XPath定位元素
search_input = driver.find_element(By.XPATH, value=search_input_xpath)
search_input.send_keys('python')
search_input.send_keys(Keys.ENTER)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值