1.
from selenium import webdriver from selenium.webdriver.common.keys import Keys //Key 表示键盘上的键, By 定位文本中的元素 from selenium.webdriver.common.by import By
driver = webdriver.Firefox() // 创建 FireFox 的WebDriver
driver = webdriver.Chrome() // Chorme的webDriver
driver.get("http://www.python.org") //get()方法将导航到由URL给出的页面
assert "Python" in driver.title //断言来确认标题是否含有 “Python” 字样
elem = driver.find_element(By.NAME, "q") //WebDriver提供了find_element方法去寻找元素
elem.clear() //先清空 键盘 elem.send_keys("pycon") // 发送键 类似于键盘输入 elem.send_keys(Keys.RETURN) // 回车
assert "No results found." not in driver.page_source driver.close() // 关闭 driver()
2. selenium 用来写测试用例 框架Pytest 以及 unittest模块编写测试用例
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By class PythonOrgSearch(unittest.TestCase): //从TestCase类继承是告诉unittest模块这是一个测试用例的方法: def setUp(self): // setUp方法是初始化的一部分。这个方法将在您将要在这个测试用例类中编写的每个测试函数之前被调用。 self.driver = webdriver.Firefox() def test_search_in_python_org(self): driver = self.driver driver.get("https://www.baidu.com/") // 百度的driver.title 是 百度一下,你就知道 self.assertIn("百度", driver.title) elem = driver.find_element(By.NAME, "q") elem.send_keys("pycon") elem.send_keys(Keys.RETURN) self.assertNotIn("No results found.", driver.page_source) def tearDown(self): //tearDown方法将在每个测试方法之后被调用。这是一个可以进行所有清理操作的地方 self.driver.close()//quit方法将退出整个浏览器,而close方法将关闭一个选项卡 if __name__ == "__main__": unittest.main()
3. 其中driver的几个方法
driver.close() //关闭当前页面 driver.quit() //关闭所有由当前测试脚本打开的页面 driver.refresh() //重新加载页面,页面刷新 driver.back() //回到上一个页面 driver.forward() //切换到下一个页面 driver.get(url)方法来打开网页链接 driver.title 获取当前页面的title 属性
4. 定位元素 BY类来定位
find_element(By.ID, "id") // BY的各个属性 ID, NAME, XPATH, LINK_TEXT, PARTIAL_LINK_TEXT, TAG_NAME, CLASS_NAME, CSS_SELECTOR find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.LINK_TEXT, "link text") find_element(By.PARTIAL_LINK_TEXT, "partial link text") find_element(By.TAG_NAME, "tag name") find_element(By.CLASS_NAME, "class name") find_element(By.CSS_SELECTOR, "css selector")
详细介绍
ID
//使用方式 login_form = driver.find_element(By.ID, 'loginForm')
<html> // HTML 标签是由尖括号包围关键词 成对出现 开始标签 <body> 结束标签</body> 之间的文本是可见的页面内容 <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> </form> </body> </html>
// <h1> </h1> 之间文本显示为标题 <P> </P>文本显示为段落 <a> 链接 <a href = "URL 网址"> This is a link </a> href 是属性
NAME
username = driver.find_element(By.NAME, 'username')
// 类别是 按键的 NAME
continue = driver.find_element(By.NAME, 'continue')
//XPath支持通过id或name属性定位的简单方法,并通过开辟各种新的可能性来扩展它们,如定位页面上的第三个复选框。
XPATH
login_form = driver.find_element(By.XPATH, "/html/body/form[1]") //绝对路径 login_form = driver.find_element(By.XPATH, "//form[1]") //HTML第一个元素 login_form = driver.find_element(By.XPATH, "//form[@id='loginForm']")
TAG_NAME
<html> <body> <h1>Welcome</h1> //标题 尖括号的都是TAG <p>Site content goes here.</p> //段落
<p class="content">Site content goes here.</p>
</body> </html>
heading1 = driver.find_element(By.TAG_NAME, 'h1') //定位标签为h1的元素
CLASS_NAME CSS_SELECTOR
content = driver.find_element(By.CLASS_NAME, 'content')
content = driver.find_element(By.CSS_SELECTOR, 'p.content')
标签:webdriver,NAME,python,selenium,driver,element,新手,find From: https://www.cnblogs.com/shaitaiyang/p/16776933.html