私は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; } }
クラス構造がすべて間違っています。クラス内のメソッドの中には、初期化や宣言以外の文を記述する必要があります。 – Grasshopper
あなたの質問は明確ではありません。両方のクラスでクロムドライブを初期化するのはなぜですか? –
これらは2種類あります 1)メインクラス - Chromeドライバを認識する 2)2番目はメインクラスではなく、Chromeドライバを認識しません。 *関連性はありません。 私は尋ねています - 非メインクラスを作成した場合、私のChromeドライバは認識されません。どうして? –