Java使用自动化测试脚本selenium
記錄幾個Java使用自動化測試腳本selenium的問題
- 查找元素(by)
- cssselector
- xpath
- 其他比較簡單的
- By.tagName
- By.id
- By.className
- By.name
- 賦值
- 獲取
- iframe元素
- shadowRoot
查找元素(by)
cssselector
通過使用標簽的名稱和屬性(id,class)
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> login_form = driver.findElement(By.xpath("/html/body/form[1]")) login_form = driver.findElement(By.xpath("//form[@id='loginForm']")) login_form = driver.findElement(By.xpath("//form[@id='loginForm']/input[2]")) //通過索引拿到指定的標簽對象其他比較簡單的
By.tagName
標簽名稱 比如input ,li ,button
By.id
標簽的id屬性
By.className
標簽的class屬性
By.name
標簽的name 一般是表單中input,select標簽
賦值
獲取
<html><body><p>Are you sure you want to do this?</p><a href="continue.html">Continue</a><a href="cancel.html">Cancel</a> </body> <html>如果是標簽中的文字,直接用webelement.getText();
是屬性值 webelement.getAttribute(‘屬性名’);
注: 獲取一般的value屬性值是需要用到getAttribute(‘value’);
獲取下拉框選擇的值:現將WebElement對象轉換為Select對象,然后使用方法:select.getFirstSelectedOption().getText();
iframe元素
有些情況是iframe下的元素,所以我們需要先定位到iframe,然后才能找到其下方的元素:
可通過name或id、索引、webelement對象切換至iframe
代碼 driver.switchTo().frame(xxx);
其構造方法如下
*補充一點:*同級的iframe不知道如何切換,現在用的方法就是先退出iframe再進入其他的iframe
driver.switchTo().defaultContent(); // 退出iframe
shadowRoot
作為html里的組件渲染–shadowRoot,在selenium中是無法直接定位的.
我們需要先用執行js的方式找到該元素并返回,就可以操作了(當然也可以直接執行js來做相應的操作)
有返回值:
JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;WebElement webElement = (WebElement) javascriptExecutor.executeScript(js);總結
以上是生活随笔為你收集整理的Java使用自动化测试脚本selenium的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员转正述职报告_程序员转正工作总结(
- 下一篇: 回顾18年我的Java自动化测试框架