Selenium 的 WebDriver提供了各种方法来寻找元素,假设下面有一个表单输入框:
<input type="text" name="user-name" id="passwd-id" />
那么:
# 获取id标签值
element = driver.find_element_by_id("passwd-id")
# 获取name标签值
element = driver.find_element_by_name("user-name")
# 获取标签名值
element = driver.find_elements_by_tag_name("input")
# 也可以通过XPath来匹配
element = driver.find_element_by_xpath("//input[@id='passwd-id']")
from seleniuim import webdriver
driver = webdriver.Chrome()
# 设置页面加载超时时间
driver.set_page_load_timeout(10)
# 加载页面
dirver.get(url)
# 后退,跳转前一个页面
driver.back
# 前进,跳转历史记录的下一个页面
driver.forward
# 刷新当前页面
driver.refresh
# 获取当前html页面title标签的文本信息
driver.title
# 获取当前页面url
driver.current_url
# 获取当前html源码
driver.page_source
# 获取当前页面句柄
driver.current_window_handle
# 获取所有页面的句柄
driver.window_handles
# 切换frame
driver.switch_to_frame
# 切换默认上下文
driver.switch_to_default_content
# 切换alert警告框
driver.switch_to_alert
其它方法:
clear() #清楚输入框的内容
send_keys('内容') #在文本框内输入内容
click() #点击按钮
submit() #表单的提交
text # 获取标签文本
1、click()事件源于单击元素操作
byLoginButton.click();
2、sendKeys()方法用于给input元素赋值
send_keys('内容') #在文本框内输入内容
byName.sendKeys("13600000000");
3、clear()用于清空input元素的值
byName.clear();
4、submit()用于提交表单
byLoginButton.submit();
5、getTitle()获取当前网页的标题
String title=driver.getTitle();
6、getCurrentUrl()获取当前网页的URL
String url=driver.getCurrentUrl();
7、getText()用于存储元素的文本值,例如纯文本、超链接等;
String text=byName.getText();
String text=byName.get_attribute('innerText') # 已验证
8、isSelected()用于存储复选框或单选框的勾选情况,返回true(勾选)或false(未勾选)
/**<input id="TANGRAM__PSP_8__memberPass" type="checkbox" name="memberPass" class="pass-checkbox-input pass-checkbox-memberPass" checked="checked">*/
WebElement checkBox=driver.findElement(By.id("TANGRAM__PSP_8__memberPass"));
boolean isSelected=checkBox.isSelected();
9、getTagName()获取元素的标记名称
String tagName=byName.getTagName();
10、isEnabled()用于存储input等元素的可编辑状态,例如:文本框、复选框、单选框;返回true(可编辑)或false(不可编辑)
boolean enabled=checkBox.isEnabled();
11、getAttribute()用于获取指定属性的值
String btnValue=byLoginButton.getAttribute("value");
12、窗口最大化
driver.manage().window().maximize();
13、accept()方法是单击弹出的对话框的确认按钮,
driver.switchTo().alert().accept();
14、dismiss()方法实现单击弹出对话框的取消按钮;
driver.switchTo().alert().dismiss();
15、getText()获取弹出对话框的文本内容
driver.switchTo().alert().getText();
16、获取当前cookie的集合
Set<Cookie> cookie=driver.manage().getCookies();
17、refresh()页面刷新
driver.navigate().refresh();