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

  4.选项卡的操作

#选项卡管理:切换选项卡,有js的方式windows.open,有windows快捷键:ctrl+t等,最通用的就是js的方式
import time
from selenium import webdriver

browser=webdriver.Chrome()
browser.get('https://www.baidu.com')

##browser.execute_script('(alert('tank'))')  ##此处为执行javascrpit代码,弹窗操作
browser.execute_script('window.open()') ##此处为执行javascrpit代码,新建浏览器窗口
print(browser.window_handles) #获取所有的选项卡 ##browser.switch_to_window(browser.window_handles[1]) #选择第二个窗口,但是是旧方法
browser.switch_to.window(browser.window_handles[1]) #选择第二个窗口,是新方法
browser.get('https://www.taobao.com')   #第二个窗口往淘宝发送请求
time.sleep(10)
##browser.switch_to_window(browser.window_handles[0]) #切换到第一个窗口,但是是旧方法
browser.switch_to.window(browser.window_handles[0])   #切换到第一个窗口,是新方法

browser.get('https://www.sina.com.cn')
browser.close()

  

 

 

posted @ 2019-06-18 09:38  evan0925  阅读(276)  评论(0编辑  收藏  举报