selenium操作⽂本框(textarea输⼊)
selenium 对⽂本框的输⼊操作⼀般有两种形式,传统的是直接通过定位元素通过sendKeys()⽅法直接在⽂本框中输⼊信息。但有时候我们可以通过id 的⽅式将其进⾏定位,但却不能通过sendKeys()向⽂本框中输⼊⽂本信息。
(题外话,运⽓⽐较差,同时遇到了两个bug:1.可以定位到输⼊框但是不能输⼊数据,2.可以定位到按钮,但是不能地阿基)
这种情况下,也需要借助JavaScript 代码完成输⼊。
HTML代码
html怎样设置文本框输入输出<textarea id="id" cols="50" rows="5" class="txtarea">
</textarea>
...
...
第⼀种:
driver.findElement(By.id("id")).sendKeys("需要输⼊的内容");
1public static void main(String[] args) throws InterruptedException {
2    System.setProperty("webdriver.chrome.driver", "D:/chromedriver_");
3    ChromeOptions Options = new ChromeOptions();
4    Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");
5    WebDriver driver = new ChromeDriver(Options);
6    driver.manage().window().maximize();
7try {
8    ("file:///C:/Users/happy/Desktop/NewFile.html");
9driver.findElement(By.id("id")).sendKeys("需要输⼊的内容");
10    } finally {
11        Thread.sleep(5000);
12    driver.close();
13    driver.quit();
14    }
15 }
第⼆种:
通过executeScript()执⾏JavaScript 代码。来实现⽂本框操作。
1public static void main(String[] args) throws InterruptedException {
2    System.setProperty("webdriver.chrome.driver", "D:/chromedriver_");
3    ChromeOptions Options = new ChromeOptions();
4    Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");
5    WebDriver driver = new ChromeDriver(Options);
6    driver.manage().window().maximize();
7try {
8    ("file:///C:/Users/happy/Desktop/NewFile.html");
9String text = "input text";
10  String js = "var ElementById('id'); sum.value='" + text + "';";
11    ((JavascriptExecutor)driver).executeScript(js);
12    } finally {
13        Thread.sleep(5000);
14    driver.close();
15    driver.quit();
16    }
17 }