2017-05-31 9 views
0

私は毎月のレポートをダウンロードするプロセスを自動化しようとしています。ドロップダウンメニュー(handlerdd)からチェックボックスを必ずしもクリックしない場合

  1. を次のように

    //Set Call handler 
        Select handlerdd = new Select(driver.findElement(By.cssSelector("#searchType"))); 
        handlerdd.selectByValue("select"); 
    
        //Wait 
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
    
        //Search, choose is exactly as the filtering option 
        Select searchcriteriadd = new Select(driver.findElement(By.cssSelector("table.content-form:nth-child(1) > tbody:nth-child(1) > " 
          + "                tr:nth-child(1) > td:nth-child(1) > select:nth-child(2)"))); 
        searchcriteriadd.selectByVisibleText("Is Exactly"); 
    
        //Search box 
        WebElement search = driver.findElement(By.cssSelector("#searchString")); 
        search.sendKeys("File I Want"); 
        search.sendKeys(Keys.ENTER); 
    
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
    
        //Explicitly wait until element is seen 
        WebDriverWait wait = new WebDriverWait(driver, 20); 
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("td.content-grid-th-delete > input:nth-child(1)"))); 
        //Checkbox 
        driver.findElement(By.cssSelector("td.content-grid-th-delete > input:nth-child(1)")).click(); 
    
        //Wait 
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
        //Generate Report button click 
        driver.findElement(By.cssSelector("fieldset.content-buttonbar:nth-child(10) > legend:nth-child(1) > button:nth-child(1)")).click(); 
    

    プロセスが行く、選択オプションを選択し、検索バーが表示されています。

  2. 検索フィルタが「IsExactly」に設定され、テキスト「file I'd looking for」がテキストフィールドに送信され、その後に入力されます。

  3. 1つのオプションがあり、そのオプションのチェックボックスが選択されています。
  4. 次に、レポート生成ボタンをクリックします。

私は問題が何であるか完全にはわかりません。私のチェックボックスが機能していないことに加えて、起こっている可能性のあることは、ファイルがチェックマークされる前にレポート生成ボタンがクリックされていることです。私はこの問題を回避する方法は完全にはわかりません。私は暗黙の待ち時間を増やすべきですか?

答えて

0

WebDriverは、フィルタリングされたデータを読み込む前に[レポートの生成]ボタンを見つけます。

Thread.sleep();を試してみてください。次のコードはあなたを助けるかもしれません。

//Set Call handler 
Select handlerdd = new Select(driver.findElement(By.cssSelector("#searchType"))); 
handlerdd.selectByValue("select"); 

//Wait 
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 

//Search, choose is exactly as the filtering option 
Select searchcriteriadd = new Select(driver.findElement(By.cssSelector("table.content-form:nth-child(1) > tbody:nth-child(1) > " 
     + "                tr:nth-child(1) > td:nth-child(1) > select:nth-child(2)"))); 
searchcriteriadd.selectByVisibleText("Is Exactly"); 

//Search box 
WebElement search = driver.findElement(By.cssSelector("#searchString")); 
search.sendKeys("File I Want"); 
search.sendKeys(Keys.ENTER); 

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 

//Explicitly wait until element is seen 
WebDriverWait wait = new WebDriverWait(driver, 20); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("td.content-grid-th-delete > input:nth-child(1)"))); 

//Checkbox 
    driver.findElement(By.cssSelector("td.content-grid-th-delete > input:nth-child(1)")).click(); 

    Thread.sleep(7000);//You can specify time according to your load time 

    //Generate Report button click 
    driver.findElement(By.cssSelector("fieldset.content-buttonbar:nth-child(10) > legend:nth-child(1) > button:nth-child(1)")).click(); 

私はそれが働いたら教えてください。

+0

はい、これは機能しました。ありがとうございました! –

関連する問題