2016-05-17 7 views
0

EDIT:心配しないで、私はそれを理解しました。 By.id()の代わりにBy.name()を実行しなければなりませんでした。XMLファイルからフォームを記入するためにセレンを使用する

XMLファイルでSeleniumを使用する方法を学習しようとしていますが、問題が発生しているようです。

ステップ:

  • 私は、XMLファイルを解析し、セレンwebdriverをを使用して文字列
  • に値を保存し、私がグーグルを開き、検索ボックスにいくつかの値を挿入し、「Google検索」をヒットしてみてください。

これは私が立ち往生する場所です。値は決して入力されず、ボタンをクリックしません。

XMLファイル:

<?xml version="1.0" encoding="UTF-8"?> 

<TestData> 
    <url-name> 
     <url>http://www.google.com</url> 
    </url-name> 

    <user-details> 
     <email>[email protected]</email> 
     <phone>(555)5559292</phone> 
     <folder>inbox</folder> 
    </user-details> 
</TestData> 

Javaコード:

import java.io.File; 
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import java.util.concurrent.TimeUnit; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.*; 
import org.w3c.dom.*; 

public class XMLTest 
{ 
    public static void main(String [] args) 
    { 
     try { 
      // Get xml file 
      File file = new File("input.xml"); 

      // Prepare XML 
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder db = dbf.newDocumentBuilder(); 
      Document document = db.parse(file); 

      String url = document.getElementsByTagName("url").item(0).getTextContent(); 
      String email = document.getElementsByTagName("email").item(0).getTextContent(); 
      String phone = document.getElementsByTagName("phone").item(0).getTextContent(); 
      String folder = document.getElementsByTagName("folder").item(0).getTextContent(); 

      System.out.println("\n [Debug Info]\n ------------" 
          + "\n Mail:\t\t" + url 
          + "\n Email:\t\t" + email 
          + "\n Phone:\t\t" + phone 
          + "\n Folder:\t" + folder); 

      // Selenium code 
      WebDriver wd = new FirefoxDriver(); 

      wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 
      wd.get(url); // Go to URL 
      wd.findElement(By.id("q")).sendKeys(phone); // Type into google search box 
      wd.findElement(By.id("btnK")).click(); // Click button 
      Thread.sleep(2000); 

      System.out.println("\n\n [Selenium]\n -----------"); 
      System.out.println("\n Title:\t\t" + wd.getTitle() 
          + "\n URL:\t\t" + wd.getCurrentUrl()); 

      wd.close(); 

     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

ブラウザが開きますが、それだけで、Googleのホームページにとどまります。どんな助けもありがとう、ありがとう!

+0

解決策があるかどうかはわかりません。 –

+0

でした。 Abhiはちょうどそれを同様に投稿しました。 –

答えて

2

'q'と 'btnK'は要素名であり、Idではありません。これを試して。

wd.findElement(By.name("q")).sendKeys(phone); // Type into google search box 
wd.findElement(By.name("btnK")).click(); // Click button 
関連する問題