6.4 Selenium操作页面元素

    技术2022-07-10  150

    1.输入框Text和按钮Button 程序6-13演示效果:首先打开百度首页,在输入框输入“医药库”,停留2秒后然后打印输入框元素的值,然后再停留2秒后点击搜索按钮并输出搜索按钮是否被点击,再次停留2秒后清空输入框。

    //程序6-13 public class TextOperation { public static void main(String[] args) throws InterruptedException { WebDriver driver = WebDriverUtils.getWebDriver(); driver.get("http://www.baidu.com"); WebElement searchBox = driver.findElement(By.id("kw")); //在输入框输入文本 searchBox.sendKeys("医药库"); Thread.sleep(2000); //打印输入框内容 System.out.println(searchBox.getAttribute("value")); Thread.sleep(2000); //点击搜索按钮 WebElement searchButton = driver.findElement(By.id("su")); searchButton.submit(); //输出按钮是否被点击 System.out.println(searchButton.isEnabled()); Thread.sleep(2000); //清空输入框 searchBox.clear(); Thread.sleep(2000); driver.quit(); } }

    2.单选按钮Radio和多选框CheckBox 程序6-14演示效果:打开药品审评中心化药审评序列公示页面,点击专业按钮,停留2秒后分别输出专业按钮是否被选择以及按钮的“value”属性值。专业按钮的HTML代码如下所示。

    <input type="radio" name="branchType" value="专业" checked="checked"> //程序6-14 public class RadioOperation { public static void main(String[] args) throws InterruptedException { WebDriver driver = WebDriverUtils.getWebDriver(); driver.get("http://www.cde.org.cn/transparent.do?method=spxlList&tasktype=fb&isFirst=1"); //选择专业按钮 WebElement zy = driver.findElement(By.xpath("/html/body/form/table/tbody/tr[2]/td/table[3]/tbody/tr/td[2]/table/tbody/tr/td[3]/input[2]")); zy.click(); Thread.sleep(2000); //判断某个单选框是否已经被选择 boolean isZySelected = zy.isSelected(); System.out.println(isZySelected); //获取被选元素的值 System.out.println(zy.getAttribute("value")); driver.quit(); } }

    多选框CheckBox的操作和单选按钮一样,这里不再演示。

    3.下拉选择框Select 程序6-15演示效果:打开药品审评中心受理品种目录浏览页面,点击年度下拉框后选择“全部”,停留2秒后点击属性值为“2018”的选项,再次停留2秒后获取下拉框的所有选项并输出选项值。下拉框的HTML代码如下所示。

    <select name="year" style="WIDTH: 100%"> <option value="全部">全部</option> <option value="2020" selected="selected">2020</option> <option value="2019">2019</option> <option value="2018">2018</option> <option value="2017">2017</option> <option value="2016">2016</option> <option value="2015">2015</option> <option value="2014">2014</option> <option value="2013">2013</option> <option value="2012前">2012前</option> </select> //程序6-15 public class SelectOperation { public static void main(String[] args) throws InterruptedException { WebDriver driver = WebDriverUtils.getWebDriver(); driver.get("http://www.cde.org.cn/news.do?method=changePage&pageName=service&frameStr=3"); //找到select元素 Select select = new Select(driver.findElement(By.xpath("/html/body/form/table/tbody/tr[2]/td/table[2]/tbody/tr/td[2]/table/tbody/tr[2]/td[2]/select"))); //选择对应的选择项,index从0开始的 select.selectByIndex(0); Thread.sleep(2000); //选择指定的值 select.selectByValue("2018"); Thread.sleep(2000); //获取所有的选项 List<WebElement> options = select.getOptions(); for (WebElement webElement : options) { System.out.println(webElement.getText()); } driver.quit(); } }
    Processed: 0.013, SQL: 9