1. 程式人生 > >Selenium之常見元素處理系列一--單選框(radio)

Selenium之常見元素處理系列一--單選框(radio)

修改下圖中的性別,屬於單選框範疇

出於隱私,下面登入模組的使用者名稱與密碼都為虛構,如果需要請自行修改成自己的使用者名稱與密碼

eg

這裡寫圖片描述

程式碼:

package com.wushuai.test;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public
class inputTest { public WebDriver driver; //初始化chrome瀏覽器驅動 public void initDriver() { System.setProperty("webdriver.chrome.driver", "D:\\java\\chromedriver-32\\chromedriver.exe"); //初始化chrome瀏覽器 driver=new ChromeDriver(); driver.get("http://www.imooc.com/user/newlogin/from_url/"
); //螢幕最大化 driver.manage().window().maximize(); } /* * 單選框 * * */ public void radioBox() { //進入使用者的個人設定介面 driver.get("http://www.imooc.com/user/setprofile"); //找到個人設定頁面的個人資訊中的編輯按鈕,並點選 driver.findElement(By.className("pull-right")).click(); /* * 編輯使用者的性別時: * 如果用下面的程式碼會報:element not visible的錯誤,即元素未明確,就是說我們選擇性別的時候 * 有三個選擇:保密,男,女,但是我們此處的程式碼並沒有指定具體選擇哪一個,只是簡單的點選性別這一塊,並未明確目標 * driver.findElement(By.name("sex")).click(); * * 下面這行程式碼可以彌補這個漏洞 * * */
/**第一種方法:運用xpath方法,適用於單選框等場景 *.//*[@id='profile']/div[4]/div/label[1]相當於性別裡“保密”選項的路徑或者id, *具體位置代表:id為profile下的第四個div下的第一個div下的第一個label *driver.findElement(By.xpath(".//*[@id='profile']/div[4]/div/label[1]")).click(); * *第二種方法如下: *代表:用List<WebElement>來接收id為profile下的第四個div下的第一個div下所有元素 */ List<WebElement> elements=driver.findElements(By.xpath(".//*[@id='profile']/div[4]/div/label//input")); try { //睡眠兩秒 Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //遍歷得到的所有元素 /* * 具體邏輯:修改性別,該性別分別包含:保密,男,女單選框 * 如果我們chrome預設設定的為"保密",那麼,該迴圈會先執行else中語句,其次繼續下一個迴圈,由於此刻迴圈到“男” * 且我們預設的是"保密",那麼滿足flag=false的判定條件,會執行if語句,並且該迴圈到此結束 * 如果我們chrome預設設定的為"男"或者"女",那麼最終執行的都是if語句,並且執行一遍,最終結果為"保密" * */ for(WebElement radio:elements) { boolean flag=radio.isSelected(); if(flag==false) { radio.click(); System.out.println("退出"); break; }else { System.out.println("選中了"); } } try { //睡眠兩秒 Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void inputBox() { //輸入賬號 driver.findElement(By.name("email")).sendKeys("[email protected]"); try { //睡眠兩秒 Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //清除賬號 driver.findElement(By.name("email")).clear(); String s=driver.findElement(By.name("email")).getAttribute("placeholder"); //列印資訊 System.out.println(s); /* * * 輸入使用者名稱與密碼並點選登入 * * 這裡主要是為了在個人設定操作打下鋪墊 * */ driver.findElement(By.name("email")).sendKeys("[email protected]"); driver.findElement(By.name("password")).sendKeys("000000"); driver.findElement(By.className("btn-red")).click();; try { //睡眠兩秒 Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { // TODO Auto-generated method stub //初始化inputTest類 inputTest it=new inputTest(); it.initDriver(); it.inputBox(); it.radioBox(); } }

相關推薦

Selenium常見元素處理系列--(radio)

修改下圖中的性別,屬於單選框範疇 出於隱私,下面登入模組的使用者名稱與密碼都為虛構,如果需要請自行修改成自己的使用者名稱與密碼 eg 程式碼: package com.wushuai.test; import java.util.L

Java自學路-Java中級教程-18:SpringMVC列表select和radio、多checkbox的處理

頁面表單還有很多控制元件,這一節介紹比較常用的列表框和單選框、多選框。列表框就是下拉列表選項,用在有多個選擇的情況,比如一大堆的國家和城市可以做成一個下拉列表供使用者選擇。單選框用在只能選擇一種選項的情況,比如性別要麼選男,要麼選女。多選框即是可以多選,比如興趣愛好可以選電腦

吾八哥學Selenium(三):操作復checkbox/radio的方法

attr webdriver for in tex 如果 Go 測試的 har selected 復選框checkbox和單選框radio是web網站裏經常會使用到的兩個控件,那麽在web自動化測試的時候如何利用Selenium來操作這倆控件呢?今天我們就來簡單入門練習一下

layui radio小坑input[name=]錯誤

<div class="layui-form-item" > <label class="layui-form-label">請選擇</label> <div class="layui-input-block" > &l

HTML中的 radio

在開始學習radio的用法的時候,覺得很簡單,但在用的時候,卻不知道怎麼進行單選,後來查了很長時間才明白其中的道理,其中,name的值是要相等的,這裡的值是什麼值都可以,只要相等就行 <input type="radio" name="男" value="

禁用(radio)或者多(checkbox)

$("input[type='radio']").each(function(){           $(this).prop("disabled",true);       });  

radio選中、取消選中

今天工作中遇到一個單選框需要做成複選框的那種效果,即點選選中、再點選取消,之所以不直接使用複選框,是因為樣式要求必須是圓的,當然百度一下網上也有不少能把複選框的方形變成圓形的方法,但粗略看一下其樣式調整還都是蠻複雜的。網上也有不少使用單選框+js實現相同效果的,最後我使用了

radio改變事件

<input type="radio" name="bedStatus" id="allot" checked="checked" value="allot">Allot <input

angularJs裡radio怎麼使用ng-model?

使用ng-model和ng-value ng-mode是當前選中的值,, ng-value是這個radio的值。 使用ng-model把radio綁到一個變數上,ng-value使用表示式來表示值。選中時它的值就是ng-value的值了。測試程式碼如

radio擊取消選中

<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8" /> <script type="text/javascript" src="http://lib.sinaapp

對於radio和複checkbox的使用

1,使用 <input type="checkbox" name="diff" id="diff" value="1"/>//複選 //預設選中可以新增checked屬性 <input type="checkbox" name="diff" id="

根據radio的值,來顯示checked狀態

例如有以下程式碼,你拿到了radio的value值0,1,2 怎樣根據他們的value值顯示它的選中狀態 <div class="add_sex"> <label><input name="form-

最簡單清晰的純css實現的radiocheckbox自定義樣式

<fieldset> <legend style="color: red;">自定義單選框radio</legend> <div cla

jquery獲取radio的值

<!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <title></title>     </hea

.net後臺給前臺的普通Radio 動態賦值,選中你要的性別。

前臺程式碼如下:<input type="hidden" id="hidSex" value="<%= model_user.Sex %>"/> <input t

Jquery預設選中radio第一個、選中指定值的

// 頁面隱藏域的值 var platIdVal = $("#platIdVal").val(); // 如果platIdVal為空,說明沒有勾選單選框 if(platIdVal==null || platIdVal == ''){ // 預設選中平臺單選框的第一個 $(".admin-content-t

radio總結(獲取值、設定預設選中值、樣式)

input[type="radio"] + label::before {    content: "\a0";    display: inline-block;    vertical-align: middle;    width: 15px;    height: 15px;    margin-ri

自己寫一個序列化form表,表中有複checkbox,radio

form表單中有複選框,單選框等var serializeform = function (formid) {    var form = document.getElementById(formid);    var arr = {};    for (var i = 0;

jquery radio是否選擇問題

pan box 行數據 業務需求 nbsp check 一個 chan 事件 業務需求是當用戶勾選中的時候刪除數據,取消勾選的時候數據取消 //單選事件,獲取到每行數據ID $(‘.checkItem‘).ch

[js高手路]設計模式系列課程-例模式實現模態

ges 點擊 eat abs select nbsp str osi 控制 什麽是單例呢? 單,就是一個的意思。例:就是實例化出來的對象,那合在一起就是保證一個構造函數只能new出一個實例,為什麽要學習單例模式呢?或者說單例模式有哪些常見的應用場景.它的使用還是很廣泛,比如