Selenium web driver 使用JS修改input属性

Selenium web driver 使用JS修改input属性

selenium获取input时候,发现type=”hidden” 的input无法修改value,经牛人指点,可以使用js修改
  首先html源文件如下,设置为text 、hidden、submit
  View Code
  在浏览器加载之后如下:
Selenium web driver 使用JS修改input属性_第1张图片
  这时候email 不能对外显示
  使用selenium,代码如下
1 import org.openqa.selenium.Alert;
2 import org.openqa.selenium.JavascriptExecutor;
3 import org.openqa.selenium.By;
4 import org.openqa.selenium.WebDriver;
5 import org.openqa.selenium.WebElement;
6 import org.openqa.selenium.chrome.ChromeDriver;
7 //import org.openqa.selenium.ie.InternetExplorerDriver;
8 //import org.openqa.selenium.remote.DesiredCapabilities;
9
10 public class selenium {
11
12     /**
13      * @param args
14      * @throws InterruptedException
15      */
16     public static void main(String[] args) throws InterruptedException {
17         // TODO Auto-generated method stub
18
19         String URL="E:\\2.html";
20         //set  web driver property
21         System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");
22         //create a WebDriver instance
23         WebDriver driver = new ChromeDriver()    ;
24         driver.manage().window().maximize();
25
26         //load the URL
27         driver.get(URL);
28         //print current title
29         System.out.println(driver.getTitle());
30         //run JS to modify hidden element
31         ((JavascriptExecutor)driver).executeScript("document.getElementById(\"em\").type ='text';");
32         Thread.sleep(3000);
33         //run JS and add a alert
34         ((JavascriptExecutor)driver).executeScript("alert(\"hello,this is a alert!\");value=\"Alert\"");
35
36         //wait for 3 seconds
37          Thread.sleep(3000);
38
39
40           //create a alert instance
41           Alert alert1=driver.switchTo().alert();
42           //print alert text
43           System.out.println(alert1.getText());
44           //click accept button
45           alert1.accept();
46
47             //create elements
48             WebElement we=driver.findElement(By.id("fn"));
49             WebElement su=driver.findElement(By.id("su"));
50             WebElement em=driver.findElement(By.id("em"));
51             // input something
52             we.sendKeys("username  test");
53             Thread.sleep(3000);
54             //print email tagname
55             System.out.print("Email  isDislayed="+em.isDisplayed()+"\n");
56             Thread.sleep(3000);
57             //click submit button
58             su.click();
59             Thread.sleep(3000);
60
61             Alert alert=driver.switchTo().alert();
62             System.out.print( alert.getText());
63             alert.accept();
64
65             Thread.sleep(3000);
66
67             //close web browser
68             driver.quit();
69
70     }
71
72 }


 可以通过js修改input的type value,执行js只需要export
  import org.openqa.selenium.JavascriptExecutor;
  运行结果如下:
Selenium web driver 使用JS修改input属性_第2张图片
  Starting ChromeDriver (v2.9.248315) on port 30175
  this is a test
  hello,this is a alert!
  Email  isDislayed=true
  I am an alert box!!

你可能感兴趣的:(Selenium web driver 使用JS修改input属性)