0

私は2つの無関係のクラスを持っていますSelenium WD |非メインクラスで、Chromeのドライバーを認識しません

1)最初の、メインクラス、ここではコメントとして貼り付けました。これは、Chromeのドライバをうまく認識します。

2)第二、非メインクラスは、何らかの理由

(のための私のクロームドライバを認識しない?)私がメインではない任意のクラスを開くと、クロムドライバが内部に認識されていません。.. 。何故ですか?

ありがとうございます。

import org.openqa.selenium.By; 

//WebElement Practice 

import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import java.util.List; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class SocketTestsFINAL2Dublicate { 

    public static void main(String[] args) throws InterruptedException { 


     System.setProperty("webdriver.chrome.driver", "C:\\automation\\drivers\\chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 


     driver.get("https://www.investing.com"); 
     driver.navigate().refresh(); 
     driver.findElement(By.cssSelector("[href = '/markets/']")).click();; 


     // list | 

     int size = 1; 
     for (int i = 0 ; i < size ; ++i) { 

      List <WebElement> list2 = driver.findElements(By.cssSelector("[nowrap='nowrap']>a")); 

      //Enter the stock page 
      size = list2.size(); 
      Thread.sleep(3000); 
      list2.get(i).click(); 

      Thread.sleep(2000); 


      // Print instrument name 
      WebElement instrumentName = driver.findElement(By.cssSelector("[class='float_lang_base_1 relativeAttr']")); 
      System.out.println(instrumentName.getText()); 

      // Check if stock is opened/closed 
      WebElement Status = null; 
      if (Status == driver.findElement(By.cssSelector(".inlineblock.redClockBigIcon.middle.isOpenExchBig-1"))); 
      { 
       System.out.println("Stock is closed"); 
       driver.navigate().back(); 
      } 

      // Stock is opened 
      if (Status == driver.findElement(By.cssSelector(".inlineblock.greenClockBigIcon.middle.isOpenExchBig-1014"))) 
      { 
       WebElement e3 = driver.findElement(By.id("last_last")); // Find Socket Element#1 
       String newSocket = e3.getText(); 
       Thread.sleep(1); 

       String printold = newSocket; // Old socket value for print on screen 
       String lettersOnlynewSocket1 = newSocket.replaceAll("[\\W]", ""); // remove punctuations 
       double CurrentSocketValue = Double.valueOf(lettersOnlynewSocket1); // !! Parsing from String to double 


       double OldSocketValue = CurrentSocketValue ; 

       Thread.sleep(90000); 

       WebElement e4 = driver.findElement(By.id("last_last")); // Find Socket Element#2 
       newSocket = e4.getText(); 
       String printNew = newSocket; // New socket value for print on screen 


       String lettersOnlynewSocket2 = newSocket.replaceAll("[\\W]", ""); // remove punctuations 
       CurrentSocketValue = Double.valueOf(lettersOnlynewSocket2); 


       // Status is : CurrentSocket = After waiting socket upated | oldSocket = Before socket update 

       if (CurrentSocketValue == OldSocketValue) // If socket is not updated - Print 'Fail' 

        System.out.println("Socket is not updated"); 

       else  
       { 
        System.out.println("Socket is updated succesfully"); 
       } 

       System.out.println("Current value is:" +printNew +"old value is:" +printold); 
       driver.navigate().back(); 

      } 



     } 
    } 
} 

しかし、これを作品

メインクラスは、非メインクラス、@Grasshopperことによって、上記のコメントのシーケンスとして

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class SocketNotMain { 
    System.setProperty("webdriver.chrome.driver", "C:\\automation\\drivers\\chromedriver.exe"); 
    WebDriver driver = new ChromeDriver(); 

driver.get("https://www.investing.com"); 
driver.navigate().refresh(); 
driver.findElement(By.cssSelector("[href = '/markets/']")).click();; 

    public boolean isAvailable() 
    { 
     return false; 

    } 

} 
+2

クラス構造がすべて間違っています。クラス内のメソッドの中には、初期化や宣言以外の文を記述する必要があります。 – Grasshopper

+1

あなたの質問は明確ではありません。両方のクラスでクロムドライブを初期化するのはなぜですか? –

+0

これらは2種類あります 1)メインクラス - Chromeドライバを認識する 2)2番目はメインクラスではなく、Chromeドライバを認識しません。 *関連性はありません。 私は尋ねています - 非メインクラスを作成した場合、私のChromeドライバは認識されません。どうして? –

答えて

0

を動作しません。あなたのメインでないクラスは、このようなものでなければなりません。

public class SocketNotMain { 

    @Test 
    public void testSomething() { 
     System.setProperty("webdriver.chrome.driver", "C:\\automation\\drivers\\chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 

     driver.get("https://www.investing.com"); 
     driver.navigate().refresh(); 
     driver.findElement(By.cssSelector("[href = '/markets/']")).click(); 
    } 


} 
+0

すばらしい、ありがとう。 私はこれで新しいです... –

+0

ありがとうございます。あなたは大歓迎です。 –

関連する問題