Selenium是用于测试Web应用程序的可移植框架。 Selenium提供了一种回放工具,用于编写功能测试,而无需学习测试脚本语言。继续之前如果尚未安装Selenium,请参阅此页面。本文围绕Selenium的定位器和各种策略展开。
内容
- 网路驱动程式
- 获取网页/ URL的来源
- 按元素定位
- ID
- 名称
- 连结文字
- 部分链接文字
- XPath
- 标签名
- CSS选择器
- 班级名称
- 使用Selenium脚本在输入字段中输入输入
- 查找提交按钮
- 完成代码以演示登录Facebook
网路驱动程式
Selenium WebDriver像本地用户一样在本地或远程计算机上本地驱动浏览器。启动网络浏览器Python selenium Module Needs webdriver。可以在此处下载铬浏览器的表格
# Python program to demonstrate
# Webdriver For Firefox
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://mbasic.facebook.com")
如何使用其他Webdriver
# Firefox
driver = webdriver.Firefox()
# Google Chrome
driver = webdriver.Chrome()
获取网页/ URL的来源
通过使用这一功能,可以获得当前打开的URL / Web页面的完整页面源代码。
# Python program Continued
# Webdriver For Firefox
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://mbasic.facebook.com")
html = driver.page_source # Getting Source of Current URL / Web-Page Loaded
print(html)
# End
输出:
需要遍历页面的源代码来创建Selenium自动化脚本
例如 :-
查找元素的方式:-
1. ID
HTML元素具有一些属性“ id”,可用于查找那些元素。
例如:-查找电子邮件字段的输入框
# Python program Continued
# Finding Input Box For Email Field
# Go Through the Screen Shot Above or Page Source
driver.find_element_by_id("m_login_email")
# End
2.姓名
HTML元素具有与之关联的属性“名称”,可用于查找那些元素。
例如:-查找密码字段的输入框
# Python program Continued
# Finding Input Box For Password Field
# Go Through the Screen Shot Above or Page Source
driver.find_element_by_name("pass")
# End
3.链接文字
可以使用该特定链接文本来定位实际上是到另一个页面的链接的HTML元素。
例如:-查找忘记的密码链接字段
# Python program Continued
# Finding Forgotten Password Link Field
driver.find_element_by_link_text("Forgotten password?")
# End
4.部分链接文字
可以使用该特定的部分链接文本来定位实际上是到另一个页面的链接的HTML元素。
例如:-查找忘记的密码链接字段
# Python program Continued
# Finding Forgotten Password Link Field
driver.find_element_by_partial_link_text("Forgotten password?")
# End
5. XPath
通过使用此元素可以轻松找到HTML元素
例如:-查找电子邮件和密码输入字段
# Python program Continued
# Creating a Reference of Form For Finding Email and Password
# Reference for Form Finding
form = driver.find_element_by_xpath("//form[@id ='login_form']")
# Email
email = form.find_element_by_name("email")
# Password
password = form.find_element_by_name("pass")
# End
6.标签名称
使用标记名称可以轻松找到HTML元素
例如:-通过使用标题,标题,正文,HTML,a,div等标记名称来查找元素。
# Python program Continued
# Finding Title of Facebook Login Page
# Output will be "Facebook - log in or sign up"
title = driver.find_element_by_tag_name("title")
print(title)
# End
7. CSS选择器
使用CSS可以轻松找到HTML元素
例如:-通过使用类,样式等来查找元素。
# Python program Continued
# Finding Password Input Field Using Class Name "bl bm bo bp"
password = driver.find_element_by_css_selector('input.bl.bm.bo.bp')
# End
8.班级名称
通过使用类名可以轻松找到HTML元素
例如:-通过使用类名查找元素。
# Python program Continued
# Finding Password Input Field Using Class Name "bl bm bo bp"
password = driver.find_element_by_class_name('bl bm bo bp')
# End
9.使用Selenium脚本在输入字段中输入输入
它用于使用内置函数send_keys将输入插入输入字段。
# Python program Continued
# Creating a Reference of Form For Finding Email and Password
# Reference for Form Finding
form = driver.find_element_by_xpath("//form[@id ='login_form']")
email = form.find_element_by_name("email")
password = form.find_element_by_name("pass")
# Inserting("abc@gmail.com") in the Email Input Field
email.send_keys("singh.swaraj1999@gmail.com")
# Inserting("Your Facebook Password") in the Password Input Field
password.send_keys("Your Facebook Password")
# End
10.找到提交按钮
它用于找到用于提交表单的“提交”按钮
# Python program Continued
# Creating a Reference of Form For Finding Email and Password
form = driver.find_element_by_xpath("//form[@id ='login_form']")
email = form.find_element_by_name("email")
password = form.find_element_by_name("pass")
email.send_keys("singh.swaraj1999@gmail.com")
password.send_keys("Your Facebook Password")
# Locating Submit Button
submit_button = driver.find_element_by_xpath("//input[@type ='submit']")
submit_button.click() # Button Click
# End
输出:-
11.完成代码以演示登录到Facebook
# Python program to demonstrate Facebook Login
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://mbasic.facebook.com")
# Creating a Reference of Form For Finding Email and Password
form = driver.find_element_by_xpath("//form[@id ='login_form']")
email = form.find_element_by_name("email")
password = form.find_element_by_name("pass")
email.send_keys("singh.swaraj1999@gmail.com")
password.send_keys("Your Facebook Password")
submit_button = driver.find_element_by_xpath("//input[@type ='submit']")
submit_button.click()
# Error Password in Output
# Because i had not used my real password here
# End
输出:-