> For the complete documentation index, see [llms.txt](https://avbravo-2.gitbook.io/developmentcookbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://avbravo-2.gitbook.io/developmentcookbook/selenium-testing.md).

# Selenium Testing

instalar&#x20;

{% embed url="<https://tecadmin.net/setup-selenium-chromedriver-on-ubuntu/>" %}

instalar google chrome

sudo  apt-get install google-chrome-stable

proyecto

{% embed url="<https://saucelabs.com/resources/articles/getting-started-with-webdriver-selenium-for-java-in-eclipse>" %}

Mi proyecto

{% embed url="<https://github.com/avbravo/seleniumtest>" %}

Instalar

**Chrome Driver**

[**https://tecadmin.net/setup-selenium-chromedriver-on-ubuntu/**](https://tecadmin.net/setup-selenium-chromedriver-on-ubuntu/)<br>

**Pasos:**

**Descargarlo**

**You can find the latest ChromeDriver on its** [**official download page**](https://sites.google.com/a/chromium.org/chromedriver/downloads)**. Now execute below commands to configure ChromeDriver on your system.**

**sudo mv chromedriver /usr/bin/chromedriver**

**sudo chown root:root /usr/bin/chromedriver**

**sudo chmod +x /usr/bin/chromedriver**<br>

dependencias

```markup
  <!--
                Test Containers
        -->
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>testcontainers</artifactId>
            <version>${testcontainers.version}</version>
        </dependency>
        
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>selenium</artifactId>
            <version>${testcontainers.version}</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-remote-driver</artifactId>         
            <version>${selenium-remote-driver.version}</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>${selenium-remote-driver.version}</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>3.141.59</version>
        </dependency>
        
           <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>1.7.29</version>
</dependency>
        
        
        
        
         <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.2</version>
            </plugin>
```

Codigo

```java
package com.bpb.book;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
import static org.junit.Assert.assertEquals;
import org.junit.Rule;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testcontainers.containers.BrowserWebDriverContainer;

public class AppControllerTest {

    String url = "http://192.168.0.5:8080/krazosguide";
    @FindBy(id = "greeting")
    private WebElement greeting;

    @Rule
    public BrowserWebDriverContainer chrome
            = new BrowserWebDriverContainer()
                    .withCapabilities(new ChromeOptions());

    @Test
    public void viewTest() {
        RemoteWebDriver driver = chrome.getWebDriver();

        driver.get(url + "/mvc/app/view");

//        WebDriverWait wait = new WebDriverWait(driver, 10);// 1 minute 
//        wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("country")));

        WebElement element = driver.findElement(By.name("country"));

        String country = element.getAttribute("value");
        assertEquals("Panama", country);
        driver.close();
    }

    @Test
    public void cdiTest() {
        RemoteWebDriver driver = chrome.getWebDriver();
        driver.get(url + "/mvc/app/cdi");
        WebElement element = driver.findElement(By.id("message"));
        String message = element.getAttribute("innerHTML");
        assertEquals("Welcome from CDI", message);
        

        driver.close();
    }

    @Test
    public void viewable() {
        RemoteWebDriver driver = chrome.getWebDriver();
        driver.get(url + "/mvc/app/viewable");
        WebElement element = driver.findElement(By.id("message"));
        String message = element.getAttribute("innerHTML");
        assertEquals("Welcome from viewable", message);
        driver.close();
    }

//    @Test
//    public void simplePlainSeleniumTest() {
//        RemoteWebDriver driver = chrome.getWebDriver();
//
//        driver.get("https://wikipedia.org");
//        WebElement searchInput = driver.findElementByName("search");
//
//        searchInput.sendKeys("Rick Astley");
//        searchInput.submit();
//
//        WebElement otherPage = driver.findElementByLinkText("Rickrolling");
//        otherPage.click();
//
//        boolean expectedTextFound = driver.findElementsByCssSelector("p")
//                .stream()
//                .anyMatch(element -> element.getText().contains("meme"));
//
//        assertTrue("The word 'meme' is found on a page about rickrolling", expectedTextFound);
//    }
//    @Test
//    public void helloJsp() {
//        RemoteWebDriver driver = chrome.getWebDriver();
//
//        driver.get("http://localhost:8080/krazosguide/mvc/app/view");
//        WebElement searchInput = driver.findElementByName("search");
//
//        searchInput.sendKeys("Avbravo");
//        searchInput.submit();
//
//        WebElement otherPage = driver.findElementByLinkText("Rickrolling");
//        otherPage.click();
//
//        boolean expectedTextFound = driver.findElementsByCssSelector("p")
//                .stream()
//                .anyMatch(element -> element.getText().contains("meme"));
//
//        assertTrue("The word 'meme' is found on a page about rickrolling", expectedTextFound);
//    }
//    @Test
//    public void book1() {
//        RemoteWebDriver driver = chrome.getWebDriver();
//        driver.get("http://book.theautomatedtester.co.uk/chapter4");
//        WebElement element = driver.findElement(By.id("selectLoad"));
//        String value = element.getAttribute("value");
//        assertEquals("Click to load the select below", value);
//        driver.close();
//    }
//    @Test
//    public void google() {
//        RemoteWebDriver driver = chrome.getWebDriver();
//        try{
//            driver.get("https://google.com/ncr");
//            driver.findElement(By.name("q")).sendKeys("cheese" + Keys.ENTER);
//            WebElement firstResult = wait.until(presenceOfElementLocated(By.cssSelector("h3>div")));
//            System.out.println(firstResult.getAttribute("textContent"));
//        } finally {
//            driver.quit();
//        }
//    }
//    @Test
//    public void XPath() {
//        RemoteWebDriver driver = chrome.getWebDriver();
//
//        driver.get("http://http://192.168.0.5:8080/krazosguide/index.html");
////         WebElement element = driver.findElement(By.id("h12"));
////         WebElement element = driver.findElement(By.id("country"));
//        //    WebElement element = driver.findElement(By.id("search"));
//
////     wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("/html/body/input")));
////   WebElement element = driver.findElementByName("search");
//
//
//        WebDriverWait wait = new WebDriverWait(driver, 10);// 1 minute 
//        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("///html/body/input")));
////        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"name\"]")));
//        
//       //  WebElement element =driver.findElement(By.xpath("//input[@value='paypal']"));  
////         WebElement element =driver.findElement(By.name("input"));  
//         WebElement element =driver.findElement(By.xpath("///html/body/input"));  
////  driver.findElement(By.name("search")).sendKeys("selenium");
//        
//
//        String country = element.getAttribute("value");
//        assertEquals("Panama", country);
//        driver.close();
//    }
//    @Test
//    public void indexhtml() {
//        RemoteWebDriver driver = chrome.getWebDriver();
////driver.switchTo().frame("UWPIFrame");
//        //driver.get("http://localhost:8080/krazosguide/mvc/app/view");
//        driver.get("http://192.168.0.5:8080/krazosguide/index.html");
////         WebElement element = driver.findElement(By.id("h12"));
////         WebElement element = driver.findElement(By.id("country"));
//        //    WebElement element = driver.findElement(By.id("search"));
//
////     wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("/html/body/input")));
////   WebElement element = driver.findElementByName("search");
//
//
//        WebDriverWait wait = new WebDriverWait(driver, 10);// 1 minute 
//        wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("search")));
////  driver.findElement(By.name("search")).sendKeys("selenium");
//        WebElement element = driver.findElement(By.name("search"));
//
//        String country = element.getAttribute("value");
//        assertEquals("Panama", country);
//        driver.close();
//    }
//    @Test
//    public void view() {
//        RemoteWebDriver driver = chrome.getWebDriver();
//
//        driver.get("http://192.168.0.5:8080/krazosguide/mvc/app/view");
//
//
//        WebDriverWait wait = new WebDriverWait(driver, 10);// 1 minute 
//        wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("country")));
////  driver.findElement(By.name("search")).sendKeys("selenium");
//        WebElement element = driver.findElement(By.name("country"));
//
//        String country = element.getAttribute("value");
//        assertEquals("Panama", country);
//        driver.close();
//    }
//    @Test
//    public void google() {
//        RemoteWebDriver driver = chrome.getWebDriver();
//
//        WebDriverWait wait = new WebDriverWait(driver, 10);
//        try {
//            driver.get("https://google.com/ncr");
//            driver.findElement(By.name("q")).sendKeys("cheese" + Keys.ENTER);
//            WebElement firstResult = wait.until(presenceOfElementLocated(By.cssSelector("h3>div")));
//            System.out.println(firstResult.getAttribute("textContent"));
//            assertEquals(firstResult.getAttribute("textContent"), "[Show more]");
//        } finally {
//            driver.quit();
//        }
//    }
//   @Test
//    public void book() {
//        RemoteWebDriver driver = chrome.getWebDriver();
//
//        driver.get("http://localhost:8080/krazosguide/mvc/app/view");
//        WebElement element = driver.findElement(By.id("login"));
//    String value = element.getAttribute("value");
//    assertEquals("Login", value);
//    }
//    @Test
//    public void viewxpaht() {
//        RemoteWebDriver driver = chrome.getWebDriver(); 
//
//        driver.get("http://192.168.0.5:8080/krazosguide/index.html");
//
//        
//// 
//       String heading = driver.findElement(By.xpath("/html/body/h2"))
//           .getText();
//       assertEquals("Welcome from view", heading);
//    }
}

```
