python selenium 1

来源:互联网 发布:网络销售投资 编辑:程序博客网 时间:2024/06/06 01:39

from selenium import webdriver
//webdriver模块提供了所有的WebDriver实现。当前Selenium支持的WebDriver实现由火狐、Chrome、IE和远程。
from selenium.webdriver.common.keys import Keys
//Keys类提供了模拟键盘按键的操作方法,如RETURN、F1、ALT操作等。

driver = webdriver.Firefox(executable_path=”C:\Users\BABABI\Desktop\geckodriver”)
//实例化一个 webdriver.FireFox

driver.get(“http://www.python.org“)//此部分执行可能会很慢,如有过多ajax的话get也不知道是否加载完全,如若你需要确保这类页面被完整加载,可以使用wait等待
//http get获取页面内容

assert “Python” in driver.title
//断言判断title中是否包含Python

elem = driver.find_element_by_name(‘q’)
elem.clear()
elem.send_keys(“good one”)
elem.send_keys(Keys.RETURN)
//element.send_keys(Keys.ARROW_DOWN) 可以模拟箭头按键。。
//找到name为q的标签
//clear文本
//填写文本
//在文本框中模拟键入RETURN

assert “No results found.” not in driver.page_source

元素定位
单个元素定位
find_element_by_id(使用id)
find_element_by_name(使用name属性值)
find_element_by_xpath(使用XPath)
find_element_by_link_text(使用显示文本)
find_element_by_partial_link_text(使用超链接文本)
find_element_by_tag_name(使用标签名)
find_element_by_class_name(使用类名)
find_element_by_css_selector(使用CSS选择器)

多个元素定位
find_elements_by_name(使用name属性值)
find_elements_by_xpath(使用XPath)
find_elements_by_link_text(使用显示文本)
find_elements_by_partial_link_text(使用超链接文本)
find_elements_by_tag_name(使用标签名)
find_elements_by_class_name(使用类名)
find_elements_by_css_selector(使用CSS选择器)

另外有一个通用的调用
单 find_element
多 find_elements

首先引入by方法
from selenium.webdriver.common.by import By
使用by中的xpath方法
driver.find_elements(By.XPATH, ‘//button’)
、、、、、、、、、、、、、、、、、、、、、
By类可用的属性如下:

ID = “id”
XPATH = “xpath”
LINK_TEXT = “link text”
PARTIAL_LINK_TEXT = “partial link text”
NAME = “name”
TAG_NAME = “tag name”
CLASS_NAME = “class name”
CSS_SELECTOR = “css selector”

通过name属性来定位
比如,考虑一下下面的网页源码:

<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
<input name="continue" type="button" value="Clear" />
</form>
</body>
<html>

username和password元素可以向下面这样定位:

username = driver.find_element_by_name(‘username’)
password = driver.find_element_by_name(‘password’)
下面将会返回Login按钮,因为他出现在Clear按钮的前面
continue = driver.find_element_by_name(‘continue’)

使用XPath进行定位
如下网页源码
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
<input name="continue" type="button" value="Clear" />
</form>
</body>
<html>

form元素可以像下面这样进行定位:

login_form = driver.find_element_by_xpath(“/html/body/form[1]”)
login_form = driver.find_element_by_xpath(“//form[1]”)
login_form = driver.find_element_by_xpath(“//form[@id=’loginForm’]”)

username元素可以像下面这样定位:

username = driver.find_element_by_xpath(“//form[input/@name=’username’]”)
username = driver.find_element_by_xpath(“//form[@id=’loginForm’]/input[1]”)
username = driver.find_element_by_xpath(“//input[@name=’username’]”)

Clear按钮元素可以像下面这样定位:

clear_button = driver.find_element_by_xpath(“//input[@name=’continue’][@type=’button’]”)
clear_button = driver.find_element_by_xpath(“//form[@id=’loginForm’]/input[4]”)

原创粉丝点击