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

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)

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

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

<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

四种方式是一样的

法二:

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()

通用方法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()

多节点和单节点的区别就是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()

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值