最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Selenium用法详解

来源:动视网 责编:小OO 时间:2025-10-04 17:05:17
文档

Selenium用法详解

Selenium用法详解fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.waitimportWebDriverWait'''browser=we
推荐度:
导读Selenium用法详解fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.waitimportWebDriverWait'''browser=we
Selenium用法详解

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.wait import WebDriverWait

'''

browser=webdriver.Chrome()

try:

browser.get("url")

input=browser.find_element_by_id('kw')

input.send_keys(u'test')

input.send_keys(Keys.ENTER)

wait=WebDriverWait(browser,10)

wait.until(EC.presence_of_all_elements_located((By.ID,'content_left')))

print(browser.current_url)

print(browser.get_cookies())

print(browser.page_source)

finally:

browser.close()

声明浏览器对象

from selenium import webdriver

browser=webdriver.Chrome()#chrome浏览器控制器

谷歌无头浏览器

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

这个是一个用来控制chrome以无界面模式打开的浏览器

创建一个参数对象,用来控制chrome以无界面的方式打开

chrome_options = Options()

后面的两个是固定写法 必须这么写

chrome_options.add_argument('--headless')

chrome_options.add_argument('--disable-gpu')

驱动路径 谷歌的驱动存放路径

path = r'C:\\pacong_data\\day3\\chromedriver.exe'

创建浏览器对象

browser = webdriver.Chrome(chrome_options=chrome_options)

访问页面

url='页面地址'

browser.get(url)

source=browser.page_source

查单个节点

browser.get('url')

input_first=browser.find_element_by_id('q')

input_second=browser.find_element_by_css_selector('#q')

input_third=browser.find_element_by_xpath('//*[@id="q"]')

print(input_first,input_second,input_third)

或通过By定位

在使用过程种可以根据实际的情况去选择对应的的定位方式,我们可以用By来设置定位策略,具体语法如下:

browser.find_element(By.ID,"kw")

browser.find_element(By.NAME,"wd")

browser.find_element(By.CLASS_NAME,"s_ipt")

browser.find_element(By.TAG_NAME,"input")

browser.find_element(By.LINK_TEXT,u"新闻")

browser.find_element(By.PARTIAL_LINK_TEXT,u"新")

browser.find_element(By.XPATH,"//*[@class='bg s_btn']")

browser.find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")

查多个节点

lis=browser.find_elements_by_xpath('//div/div/div/ul/li/a')

print(lis)

节点交互

import time

browser=webdriver.Chrome()

browser.get('url')

input=browser.find_element_by_id('q')

input.send_keys('VR')

time.sleep(2)

input.clear()

input.send_keys('test')

button=browser.find_element_by_class_name('btn-search')

button.click()

获取网页的源码

html=browser.page_source

获取节点信息

browser=webdriver.Chrome()

browser.get('url')

获取属性

logo=browser.find_element_by_id('option')

print(logo)

print(logo.get_attribute('class'))#获得标签class属性的值

获取文本值

input=browser.find_element_by_xpath('//*[@id="option"]/a')

print(input.text)

获取id。位置,标签名和大小

print(input.id)

print(input.location)

print(input.tag_name)

print(input.size)

延时等待

隐式等待

browser=webdriver.Chrome()

browser.implicitly_wait(10)#当一开始时若没有找到目标节点,则再等待10s,再找找不到,就报错

browser.get('url')

input=browser.find_element_by_class_name('option')

print(input)

显示等待

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.ui import WebDriverWait

browser=webdriver.Chrome()

browser.get('url')

wait=WebDriverWait(browser,10)#为指定最大等待时间10s

inpu=wait.until(EC.presence_of_element_located((By.ID,'q')))#找到即退出等待时间

button=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'btn-search')))

print(input,button)

cookies处理

browser=webdriver.Chrome()

browser.get('url')

print(browser.get_cookies())

browser.add_cookie({'name':'name','domain':'url','value':'germey'})

print(browser.get_cookies())

browser.delete_all_cookies()

print(browser.get_cookies())

'''

补充:

options = webdriver.ChromeOptions()

1.添加缓存路径os.getcwd() 可获得当前目录

options.add_argument('--disk-cache-dir='+os.getcwd()+'\\cache')

2.打开谷歌浏览器(随机UA)

options.add_argument('--user-agent='+random.choice(ua))

3.设置代理IP

options.add_argument('--proxy-server={0}'.format(ip))

4.以开发者模式

options.add_experimental_option('excludeSwitches', ['enable-automation'])

5.创建驱动

driver = webdriver.Chrome(executable_path='chromedriver',options=options)

6.全屏

driver.maximize_window()

文档

Selenium用法详解

Selenium用法详解fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.waitimportWebDriverWait'''browser=we
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top