xpath 语法&元素交互操作

时间:2019-06-18
本文章向大家介绍xpath 语法&元素交互操作,主要包括xpath 语法&元素交互操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Xpath语法

//body/.    表示从body当前位置查找

from selenium import  webdriver
driver = webdriver.Chrome()

try:
    #隐式等待,下载get请求之前,而显式请求写在get请求后:wait.until(....)
    driver.implicitly_wait(10)
    driver.get('https://doc.scrapy.org/en/latest/_static/selectors-sample1.html')
   

    #根据xpath语法查找元素
    #从根开始找,第一个 用/
    html =driver.find_element_by_xpath('/html')

    print(html.tag_name)

    #从根节点开始找,任意一个元素,用//

    head =driver.find_element_by_xpath('//head')
    print(head.tag_name)


    div = driver.find_element_by_xpath('//div')
    print(div.tag_name)

    # #查找id为images的div节点
    # div1 = driver.find_element_by_xpath('//div[@id="images"]')
    # print(div1.tag_name)
    # print(div1.text)

    #找到第一个a节点
    a = driver.find_element_by_xpath('//a')
    print(a.tag_name)
    #找到所有a节点
    a_s = driver.find_elements_by_xpath('//a')
    print(a_s)

    #找到第一个a节点的href属性
    # a1 = driver.find_element_by_xpath('//a/href')
    #
    # print(a1.tag_name)
    # #get_attribute:获取节点中的某个属性
    a2 = driver.find_element_by_xpath('//a').get_attribute('href')
    print(a2)
finally:
    driver.close()

2.

元素交互操作

from selenium import  webdriver
from selenium.webdriver.common.keys import Keys #键盘按键操作
import time

driver = webdriver.Chrome()

driver.maximize_window()

try:
    driver.implicitly_wait(10)
    driver.get('https://www.jd.com')

    image_tag = driver.find_element_by_id('key')
    image_tag.send_keys('围城')
    image_tag.send_keys(Keys.ENTER)
    time.sleep(2)

    image_tag = driver.find_element_by_id('key')
    image_tag.clear()
    image_tag.send_keys('墨菲定律')
    image_tag.send_keys(Keys.ENTER)
    button = driver.find_element_by_class_name('button')
    button.click()
    time.sleep(2)

finally:
    driver.close()

3.添加cookie

添加cookie
"""
driver = webdriver.Chrome()

driver.maximize_window()

try:
    driver.implicitly_wait(10)
    driver.get('https://www.zhihu.com/explore')

   #driver.add_cookie({'name':'tank','pwd':'123'})    #这个不行,应该和网页里的cookie一致
    driver.add_cookie({'Name': 'tank', 'Value': '123'})

    driver.get_cookies()

#若上面的报错,可以先用print(driver.get_cookies())代替上两句,测试获取当前网站的cookie
time.sleep(2) finally: driver.close()

  

 

原文地址:https://www.cnblogs.com/evan0925/p/11043526.html