selenium简单使用及元素定位方法

2020-01-15  本文已影响0人  我是孟小鱼呀

一、selenium简单使用

以下是selenium的一些简单的基础用法
以下程序实现功能:自动跳转到百度首页,自动化界面,然后访问跳转淘宝网首页,回退到上一页(百度首页),回到下一页(淘宝网首页),刷新淘宝网首页,获取标题、网址及窗口句柄并输出,结束会话关闭退出。

# -*-coding: utf8 -*-
from selenium import webdriver

service_log_path = 'chromedriver.log' #生成日志存储在本目录下的.log文件内

#启动谷歌浏览器,开启与谷歌之间的会话
driver = webdriver.Chrome(service_log_path=service_log_path)

#访问一个网页
driver.get('https://www.baidu.com/')

#窗口最大化
driver.maximize_window()

#访问
driver.get('http://www.taobao.com')

#回退上一页
driver.back()

#回到下一页
driver.forward()

#刷新页面
driver.refresh()

#获取标题
print(driver.title)

#获取网址
print(driver.current_url)

#窗口的句柄
print(driver.current_window_handle)

# #结束会话
# driver.quit()

终端输出结果,可以看到淘宝网的标题、网址及窗口的句柄

image.png

二、selenium元素定位方法

以下以百度首页为例:定位到百度搜索框

image.png

(1)方式一: 通过id进行定位,id定位结果唯一

ele = driver.find_element_by_id("kw")
print(ele)
print(ele.get_attribute("class")) #获取属性class的值

(2)方式二:通过class进行定位

eles =driver.find_elements_by_class_name('s_ipt')
driver.find_element_by_class_name('s_ipt')

(3)方式三:通过name进行定位

driver.find_element_by_name('wd')
driver.find_elements_by_name('wd')#获取第一个

(4)方式四 :通过tagname标签名进行定位

driver.find_element_by_tag_name("input")
driver.find_elements_by_tag_name("input")

(5)方式五、六: 针对文本链接进行定位(定位到百度首页右上角“更多产品”)

driver.find_element_by_link_text("更多产品")
driver.find_elements_by_link_text("更多产品")
driver.find_element_by_partial_link_text("产品")#模糊匹配

(6)方式七:通过xpath进行定位(百度首页搜索框)

driver.find_element_by_xpath("//*[@id="kw"]")

百度首页,按F12,左上角可以定位;CTRL+F会出现搜索框,将搜索内容放在此处可查看是否定位到元素

image.png image.png

三、document定位元素

(1)查找元素
image.png image.png image.png image.png
(2)元素的属性
(3)样式
(4)事件

浏览器和用户事件-触发-执行js代码带来不同页面响应。例如:点击事件、输入事件、鼠标事件等。

#页面加载完成事件
windows.onload = function(){
alert("everything is ready!!!")
}
#点击事件
document.getElementsByXXX("").onclick = function(){
alert("哈哈,点我了呀!!!")
}
上一篇下一篇

猜你喜欢

热点阅读