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

浙公网安备 33010602011771号