0

관련없는 클래스가 2 개 있습니다.셀레늄 WD | 메인이 아닌 클래스가 크롬 드라이버를 인식하지 못합니다.

1) 첫 번째 메인 클래스 인 Refference로 붙여 넣습니다. 그것은 크롬 드라이버를 잘 인식합니다.

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(); 

      } 



     } 
    } 
} 

그러나 작동

Main 클래스이, 비 메인 클래스는, @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

이들은 두 가지 클래스입니다 1) 메인 클래스 - 크롬 드라이버를 인식합니다 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

고마워. 너는 대환영이다. –