Hi , 欢迎!
开店!    曝光台    保障    地图    帮助中心
赞助广告
全站顶部广告

【selenium】节点获取和节点交互

  • 时间:2020-10-28 23:39 编辑:chentao326 来源: 阅读:102
  • 扫一扫,手机访问
摘要:
from selenium import webdriver
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
#修改编码使得网页能展示
#如果该文件的命名是selenium.py时系统会报错、
#需要改

# browser = webdriver.Chrome()
browser = webdriver.Firefox()
browser.get('https://www.taobao.com')
input_id = browser.find_element_by_id('q')
input_name = browser.find_element_by_name('q')
input_css = browser.find_element_by_css_selector('#q')
input_xpath = browser.find_element_by_xpath('//*[@id="q"]')
print(input_id)
print(input_name)
print(input_css)
print(input_xpath)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

获取到页面后查看搜索框的源代码
在这里插入图片描述

四个不同的方法的返回值;

<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="8c70f179-a36d-4dcb-9ebb-1ff69bfed680", element="62affff0-e839-4ce1-944c-e9bcec1b1806")>
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="8c70f179-a36d-4dcb-9ebb-1ff69bfed680", element="62affff0-e839-4ce1-944c-e9bcec1b1806")>
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="8c70f179-a36d-4dcb-9ebb-1ff69bfed680", element="62affff0-e839-4ce1-944c-e9bcec1b1806")>
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="8c70f179-a36d-4dcb-9ebb-1ff69bfed680", element="62affff0-e839-4ce1-944c-e9bcec1b1806")>

Process finished with exit code 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

四种方式是一样的

法二:

from selenium import webdriver
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
from selenium.webdriver.common.by import By
browser = webdriver.Firefox()
browser.get('https://www.taobao.com')
input_id = browser.find_element(By.ID,'q')
print(input_id)

browser.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

通用方法find_element(),需要两个参数:查找方式By和值
实际就是上面方法的函数版本,只是更加灵活
即:browser.find_element_by_id('q')<=>browser.find_element(By.ID,'q')

多节点获取

from selenium.webdriver.common.by import By
browser = webdriver.Firefox()
browser.get('https://www.taobao.com')
# list  = browser.find_elements_by_css_selector('.service-bd li ')
list  = browser.find_elements(By.CSS_SELECTOR,'.service-bd li ')
print(list)

browser.close()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

多节点和单节点的区别就是find_elementfind_elements

节点交互

browser = webdriver.Firefox()
browser.get('https://www.taobao.com')

input   = browser.find_element_by_id('q')
input.send_keys('iphone')
time.sleep(1)
input.clear()
input.send_keys('ipad')
botton = browser.find_element_by_class_name('btn-search')
botton.click()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

首先,驱动浏览器打开淘宝,
然后,用find_element_by_id()方法获取输入框
然后,用send_keys()方法输入iPhone
等待一秒后clear()方法清空输入框
再次调用send_keys()方法输入iPad
之后,再用find_element_by_class_name()获取搜索按钮,
最后,调用click()方法完成搜索

  • 全部评论(0)
最新发布的资讯信息
【技术前线|】小圈源码小圈app源码部主要功能(2021-05-06 11:10)
【技术文档|网络通讯】叮豚AI智能企业数字化营销系统带智能获客品牌推广致力于智能企业数字化应用系统应用(2021-01-30 16:46)
【技术前线|区块链】编译64位windows下可运行的.dll文件(2020-11-01 01:14)
【技术前线|物联网】ARM Cortex-A系列(A53、A57、A73等)处理器性能分类与对比(2020-11-01 01:04)
【技术前线|程序人生】加班丧?来看看这些句子给你满满正能量(2020-10-28 23:59)
【技术前线|音视频开发】JZ6(2020-10-28 23:58)
【技术文档|Python】Mac电脑上安装python,pycharm(2020-10-28 23:57)
【技术文档|Python】Python字典排序高级用法(2020-10-28 23:57)
【技术文档|Python】【Task04】Numpy学习打卡(2020-10-28 23:56)
【技术前线|程序人生】职业理念-10月28日(2020-10-28 23:53)
联系我们

平台客服:28292383

平台电话:400办理中.....

平台邮箱:28292383#qq.com(#更换@)

工作时间:早9:00 晚:24:00(节假日无休)

我的
足迹
收藏
社区投稿
推广赚佣
平台客服
APP

扫一扫进手机版
TOP