2014-12-02 75 views
0

我試圖自動化網站Naukri.com中的下拉菜單。該下拉菜單由多個選擇複選框組成。我們如何使用Selenium Web驅動程序自動化它?使用Selenium自動化組合框(下拉+複選框)

下拉列表中的結構是:

<div class="DDwrap"> 
<ul class="DDsearch"> 
    <li class="tagit" data-id="tg_indCja_a8_A"> 
     <span class="tagTxt">Accounting , Finance</span> 
     <span class="dCross"></span> 
    </li> 
    <li class="frst" style="float: left;"> 
    <input id="cjaInd" class="srchTxt" type="text" placeholder="" name="" autocomplete="off" style="width: 30px;">  
    <input id="hid_indCja" type="hidden" name="indType" value="["8"]"> 
    </li> 
</ul> 
</div> 

誰能幫助我對此?

回答

1

看看下面的代碼,它導航到有關表格,打開「行業」的下拉列表中,選擇兩個複選框:「會計,財務」和「政府,國防」:

WebDriver driver = new FirefoxDriver(); //Opening firefox instance 

driver.manage().window().maximize(); //maximizing window 
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); //Giving implicit timeout of 20 seconds 

driver.get("http://www.naukri.com/"); 


//Since there are two windows popping up, hence switching and closing the unnecessary window. 
Set<String> windows = driver.getWindowHandles();   
Iterator iter = windows.iterator(); 
String parentWindow = iter.next().toString(); 
String childWindow = iter.next().toString();   
driver.switchTo().window(childWindow); 
driver.close(); 
driver.switchTo().window(parentWindow); 

//Hovering over "Jobs" 
Actions act = new Actions(driver); 
WebElement jobs = driver.findElement(By.xpath("//ul[@class='midSec menu']//div[.='Jobs']")); 
act.moveToElement(jobs).build().perform(); 

//Clicking on "Advance Search" 
WebElement Adv_search = driver.findElement(By.xpath("//ul[@class='midSec menu']/li[1]//a[.='Advanced Search']")); 
act.moveToElement(Adv_search).click().perform(); 

//Clicking on the industry dropdown 
driver.findElement(By.xpath("//div[@class='DDinputWrap']/input[contains(@placeholder,'Select the industry')]")).click(); 

//Selecting the checkbox containing text as "Accounting" 
driver.findElement(By.xpath("//ul[@class='ChkboxEnb']//a[contains(text(),'Accounting')]")).click(); 

//Selecting the checkbox containing text as 'Government' 
driver.findElement(By.xpath("//ul[@class='ChkboxEnb']//a[contains(text(),'Government')]")).click(); 
+0

@ Riki:如果它適合你,請將它標記爲答案。謝謝.. :) – Subh 2014-12-02 08:25:01

+0

感謝它爲我工作! – Riki 2014-12-02 08:40:25

+0

很高興爲你工作..乾杯.. :) – Subh 2014-12-02 08:41:05