Niepotrzebnie otwiera się druga przeglądarka

Niepotrzebnie otwiera się druga przeglądarka
ZoooL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
0

Problem wystepuje w momencie użycia metody, nie wiem czemu otwiera druga przegladarke.

Kopiuj
package pl.testerOprogramowania;

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.FluentWait;
import org.testng.Assert;
import org.testng.annotations.Ignore;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;

import java.time.Duration;
import java.util.List;

@Listeners(value = {SampleTestListener.class})
public class FirstTest extends BaseTest {


    @Test
    public void firstTest() {
        ChromeOptions options = new ChromeOptions();
        options.setBinary("D:\\programiki\\chrome pod selenium\\chrome-win\\chrome.exe");
        WebDriver driver = new ChromeDriver(options);
        driver.get("https://testeroprogramowania.github.io/selenium/wait2.html");

        driver.findElement(By.id("clickOnMe")).click();
        waitForElementToExist(By.cssSelector("p"));

        WebElement para = driver.findElement(By.cssSelector("p"));

        SoftAssert softAssert = new SoftAssert();

        Assert.assertEquals(para.isDisplayed(), true);
        Assert.assertTrue(para.isDisplayed(), "Element is not displayed");
        Assert.assertTrue(para.getText().startsWith("Dopiero"));
        Assert.assertFalse(para.getText().startsWith("Pojawilem"));
        Assert.assertEquals(para.getText(), "Dopiero sie pojawilem!");
//        Assert.assertEquals(para.getText(), "Dopiero", "Teksty są różne");
        driver.quit();
//      checking some asserts stop/ not stop
        softAssert.assertAll();
    }

    @Test @Ignore
    public void secondTest() {
        ChromeOptions options = new ChromeOptions();
        options.setBinary("D:\\programiki\\chrome pod selenium\\chrome-win\\chrome.exe");
        WebDriver driver = new ChromeDriver(options);
//        driver.get("https://testeroprogramowania.github.io/selenium/wait2.html");

        driver.findElement(By.id("clickOnMe")).click();
        waitForElementToExist(By.cssSelector("p"));

        String paraText = driver.findElement(By.cssSelector("p")).getText();
        Assert.assertEquals(paraText, "Dopiero się pojawiłem!");

        driver.quit();
    }

    public void waitForElementToExist (By locator) {
        ChromeOptions options = new ChromeOptions();
        options.setBinary("D:\\programiki\\chrome pod selenium\\chrome-win\\chrome.exe");
        WebDriver driver = new ChromeDriver(options);
//        driver.get("https://testeroprogramowania.github.io/selenium/wait2.html");

        FluentWait<WebDriver> wait = new FluentWait<>(driver);
        wait.ignoring(NoSuchElementException.class);
        wait.withTimeout(Duration.ofSeconds(10));
        wait.pollingEvery(Duration.ofSeconds(1));

                wait.until(driver1 ->  {
                List<WebElement> elements = driver.findElements(locator);
                if (elements.size()>0) {
                    System.out.println("Element jest na stronie");
                    return true;
                } else {
                    System.out.println("Elementu nie ma na stronie");
                    return false;
                }
            });

        }

    }

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4717
4

Selenium zajmowałem się już dawno i wszystko wyparłem, ale na oko to w metodzie waitForElementToExist :
otwierasz tu:

Kopiuj
 WebDriver driver = new ChromeDriver(options);

Przekaż driver jako argument.

ZoooL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
0

Działa, podziekował.

Kopiuj
WebDriver driver = DriverFactory.getDriver();

    public static WebDriver getDriver() {
        if (driver==null) {
            ChromeOptions options = new ChromeOptions();
            options.setBinary("D:\\programiki\\chrome pod selenium\\chrome-win\\chrome.exe");
            driver = new ChromeDriver(options);
        }
        return driver;
    }

// close

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.