记录一下自己使用selenium常用的四个函数(等待元素出现,等待元素消失,通过cmd打开现有Chrome配置的浏览器-绑定已打开的浏览器,导入现有Chrome配置-打开新的浏览器)

 记录一下自己使用selenium常用的四个函数:

1、等待元素出现

2、等待元素消失

3、通过cmd打开现有Chrome配置的浏览器-绑定已打开的浏览器

4、导入现有Chrome配置-打开新的浏览器

'''
Author: Liang
LastEditors: Liang
Date: 2020-12-03 21:15:38
LastEditTime: 2020-12-04 11:16:05
Email: str-liang@outlook.com
FilePath: /测试练习/selenium_function_Chrome.py
Environment: Win 10 Python 3.8
Description: selenium_绑定已打开的Chrome浏览器_copy
'''

# 使用selenium 绑定已打开的Chrome浏览器  打开cmd 输入如下指令,主要原理是 利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。
# chrome.exe --remote-debugging-port=9000 --user-data-dir="C:\Users\Administrator\AppData\Local\Google\Chrome\User Data - 副本"

# chrome.exe 代表我们会打开一个 谷歌浏览器 (如果你有 JAVA/Python编程基础,如果在cmd测试过程中,没有符合我们的预期,正常打开一个Chrome浏览器的话,你应该会考虑一下是否将Chrome的路径添加到了系统环境变量很脏)
# 其中的 -remote-debugging-port值,可以指定任何打开的端口。这里写的 9000 可以改为任意其他数字 目前测试为 12-9999 之间的数字
# -user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。(当然,你也可以写成你自己的Chrome路径,在 WIN10 环境下 一般默认为 C:\Users\Administrator\AppData\Local\Google\Chrome\User Data

from selenium import webdriver
from selenium.webdriver.common.by import By # 相当于 driver.find_element_by_... 的底层调用方法
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.common.exceptions import TimeoutException

# 等待元素出现
def is_visible(driver,locator,timeout = 10):
    try:
        WebDriverWait(driver,timeout).until(expected_conditions.visibility_of_element_located((By.XPATH,locator)))
        return driver.find_element_by_xpath(locator)
    except TimeoutException:
        return False

# 等待元素消失
def is_not_visible(driver,locator,timeout = 10):
    try:
        WebDriverWait(driver,timeout).until_not(expected_conditions.visibility_of_element_located((By.XPATH,locator)))
        return driver.find_element_by_xpath(locator)
    except TimeoutException:
        return False

# 写两个常用的函数,以后可以直接导入使用
def binding_chrome():
    # chrome.exe --remote-debugging-port=9000 --user-data-dir="C:\Users\Administrator\AppData\Local\Google\Chrome\User Data - 副本"
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9000")
    brower = webdriver.Chrome(chrome_options=chrome_options)
    return brower 

def open_chrome():
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument(r'user-data-dir=C:/Users/Administrator/AppData/Local/Google/Chrome/User Data - 副本')
    brower = webdriver.Chrome(chrome_options=chrome_options)
    return brower

if __name__ == "__main__":
    # __name__ == "__main__" import此程序时,下面的代码不会主动执行,但是可以调用此程序内部的函数
    # brower = open_chrome()
    brower = binding_chrome()
    brower.get('https://www.baidu.com')
    print(brower.title)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值