時間日期空間
1)控件沒有限制手動輸入,直接調用sendKeys方法寫入時間數據
2)空間有限制輸入,則可以執行JS來改變元素的value屬性數值
javascriptExecutor jsExecutor=(javascriptExecutor)driver;
jsExecutor.executeScript("...");
舉例12306
截圖如下,日期空間有readonly ,因為不允許手動寫入,用js去除readonly然后寫入時間
先寫入js驗證是否正確,去除掉readonly屬性
返回頁面看
package WebTest002;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.chrome.ChromeDriver;
public class ElementLocate {
private static ChromeDriver chromeDriver;
public static void main(String []args) {
openChrome();
//ID 定位
//chromeDriver.findElement(By.id("kw")).sendKeys("Selenium");
//name定位
JavascriptExecutor jsExecutor=chromeDriver;
jsExecutor.executeScript("document.getElementById(\"train_date\").removeAttribute(\"readonly\")");
chromeDriver.findElement(By.id("train_date")).clear();
chromeDriver.findElement(By.id("train_date")).sendKeys("2020-3-29");
}
private static ChromeDriver chromeDriver;
public static void main(String []args) {
openChrome();
//ID 定位
//chromeDriver.findElement(By.id("kw")).sendKeys("Selenium");
//name定位
JavascriptExecutor jsExecutor=chromeDriver;
jsExecutor.executeScript("document.getElementById(\"train_date\").removeAttribute(\"readonly\")");
chromeDriver.findElement(By.id("train_date")).clear();
chromeDriver.findElement(By.id("train_date")).sendKeys("2020-3-29");
}
public static void openChrome() {
System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");
//1.打開瀏覽器chrome
chromeDriver = new ChromeDriver();
//2.訪問12306
chromeDriver.get("https://www.12306.cn/index/");
}
System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");
//1.打開瀏覽器chrome
chromeDriver = new ChromeDriver();
//2.訪問12306
chromeDriver.get("https://www.12306.cn/index/");
}
}
單獨代碼實現如下
chromeDriver.get("https://www.12306.cn/index/");
JavascriptExecutor jsExecutor=chromeDriver;
jsExecutor.executeScript("document.getElementById(\"train_date\").removeAttribute(\"readonly\")");
chromeDriver.findElement(By.id("train_date")).clear();
chromeDriver.findElement(By.id("train_date")).sendKeys("2020-3-29");