관련없는 클래스가 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;
}
}
클래스 구조가 모두 잘못되었습니다. 클래스의 메소드 안에 초기화 또는 선언 이외의 명령문을 작성해야합니다. – Grasshopper
질문이 명확하지 않습니다. 왜 두 클래스에서 크롬 드라이버를 초기화합니까? –
이들은 두 가지 클래스입니다 1) 메인 클래스 - 크롬 드라이버를 인식합니다 2) 두 번째 클래스는 메인 클래스가 아니며 Chrome 드라이버를 인식하지 못합니다. * 관련이 없습니다. 질문 : 기본이 아닌 클래스를 만들면 Chrome 드라이버를 인식하지 못합니다. 왜? –