selenium+java初级学习笔记之下拉菜单定位
如果F12之后发现下拉菜单为类似这种类型即select标签写的:
<select class="u1" id="area">
<option value=""> </option>
<option value="beijing">朝阳区</option>
<option value="tianjin">丰台区</option>
<option value="shanxi">西城区</option>
</select>
那么我们的代码应为:
driver.get(url);
Select select = new Select(driver.findElement(By.id("areaID")));//找到元素
select.selectByVisibleText("北京市");//通过text
Thread.sleep(1000);
select.selectByIndex(2);//通过index
Thread.sleep(1000);
select.selectByValue("shanxi");//通过value
Thread.sleep(1000);
如果我们F12后页面下拉菜单不是select那么我们就需要用传统的元素定位方式进行定位:
<form action="" method="post">
<div id="divselect">
<cite>请选择特效分类</cite>
<ul style="display: none;">
<li><a href="javascript:;" selectid="1">导航菜单</a></li>
<li><a href="javascript:;" selectid="2">下拉select</a></li>
<li><a href="javascript:;" selectid="3">select</a></li>
<li><a href="javascript:;" selectid="4">DIVCSS5</a></li>
<li><a href="javascript:;" selectid="5">jquery </a></li>
</ul>
</div>
<input name="" type="hidden" value="2" id="inputselect">
</form>
那么我们的代码可以这么来实现:
driver.get(url);
WebElement id = driver.findElement(By.id("divselect")); id.click();
Thread.sleep(2000);
//WebElement web = id.findElement(By.cssSelector("li ~ li"));
//WebElement web = id.findElement(By.cssSelector("div#divselect li:nth-of-type(3)"));
WebElement web = id.findElement(By.cssSelector("[selectid='1']"));
web.click();
Thread.sleep(2000);
以上是cssSelector的几种元素定位方式,click()方法可以选择想要选择的下拉选项。