有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在JFrame中运行与webdriver相关的代码

大家好,我是一名java初学者,在完成我的项目时遇到了这个严重的问题。 我为另一个站点编写了一个类似于下面所示的示例的代码,但无法在JFrame的操作侦听器中运行该代码,因此我的问题可能会发生改变,因为这甚至可以为该示例代码创建一个类似JFrame r的图形界面

import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class GoogleSuggest 
{
    public static void main(String[] args) throws Exception
 {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com/webhp?complete=1&hl=en");

        WebElement query = driver.findElement(By.name("q"));
        query.sendKeys("Cheese");

        long end = System.currentTimeMillis() + 50000;
        while (System.currentTimeMillis() < end) {
            WebElement resultsDiv = driver.findElement(By.className("gssb_e"));
            if (resultsDiv.isDisplayed()) {
              break;
            }
        }

        List<WebElement> allSuggestions = driver.findElements(By.xpath("//td[@class='gssb_a gbqfsf']"));
        for (WebElement suggestion : allSuggestions) {
             System.out.println(suggestion.getText());
        }
     }
}

我想运行的是dat中的Jframe,一个用于输入单词的小文本字段,当在dat action listener中按下Jbutton时,我想运行与上面类似的程序,其中我在上面的示例代码中提供的单词“cheese”应该替换为我在d文本字段中提供的单词,并输出上述代码shud b显示在Jframe的文本区域中。无法在actionlistener中使用webdriver

任何人请帮助我完成项目


共 (1) 个答案

  1. # 1 楼答案

    我是这样做的:

    我在应用程序中使用WebDriver driver;这样的驱动程序,当我想加载新浏览器时,我调用这个方法:

    public void changeDriver(){
      String[] options = {"Google Chrome","Internet Explorer","Firefox"};
      int result = JOptionPane.showOptionDialog(null, "Choisir le navigateur de test", "Choix du navigateur", JOptionPane.DEFAULT_OPTION , JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
    
      switch (result)
      {
        case 0:
          System.setProperty("webdriver.chrome.driver", "C:\\envdev\\chromedriver.exe");
          driver = new ChromeDriver();
          break;
        case 1:
          driver = new InternetExplorerDriver();
          break;
        case 2:
          FirefoxProfile profile = new FirefoxProfile();
          driver = new FirefoxDriver(profile);
          break;
        default:
          System.out.println("default browser lunched");
          driver = new FirefoxDriver();
          break;
      }
    }
    

    下载ChromeDriver here