Не удается найти элемент по идентификатору или имени в браузере Selinium Java Chrome - PullRequest
0 голосов
/ 06 июня 2018
   public class Bwinbe {
            public static void main(String[] args) {    
                System.setProperty("webdriver.chrome.driver", "mypath");
                WebDriver driver = new ChromeDriver();
                driver.get("http://test.www.bwin.be/");
                WebDriverWait wait = new WebDriverWait(driver,20);

                driver.findElement(By.id("login-overlay-button")).click();
                driver.findElement(By.id("username")).sendKeys("passport3");
                    driver.findElement(By.id("password")).sendKeys("qwe123");
                driver.findElement(By.id("submit")).click();
        }
    }

получить исключение при запуске этого.невозможно найти элементы по имени или идентификатору

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Как я увидел страницу Вы пытаетесь автоматизировать, Вы пытаетесь войти с помощью кнопки.

Вам необходимо выполнить поиск по этому элементу:

Это кнопка html:

<a class="btn-s1" data-loading="Loading..." href="/en/authentication/loginoverlay" id="login-overlay-button" onclick="return false;" data-hasqtip="true" aria-describedby="qtip-0">LOG IN</a>

, поэтому попробуйте выполнить поиск с помощью

driver.findElement(By.className("btn-s1")).click();

, затем вам нужно переключиться на элемент iFrame для ввода имени пользователя и пароля:

Это frame html:

  <iframe id="bcx_local_storage_frame" src="https://assets.bounceexchange.com/assets/bounce/local_storage_frame9.min.html#2582" style="display: none;" kwframeid="1"></iframe>

команда будет выглядеть примерно так:

driver.switchTo (). Frame ("bcx_local_storage_frame");

, а затем остаток вашего кода

   driver.findElement(By.id("username")).sendKeys("passport3");
   driver.findElement(By.id("password")).sendKeys("qwe123");
   driver.findElement(By.id("submit")).click();

Надеюсь, это поможет,

0 голосов
/ 06 июня 2018

Возможно, вам придется подождать несколько раз после нажатия на кнопку входа.следующий код может работать для вас.

public class Bwinbe {
     public static void main(String[] args) {    
         System.setProperty("webdriver.chrome.driver", "mypath");
         WebDriver driver = new ChromeDriver();
         driver.get("http://test.www.bwin.be/");
         WebDriverWait wait = new WebDriverWait(driver,20);

         driver.findElement(By.id("login-overlay-button")).click();
         wait.until(ExpectedConditions.elementToBeClickable(By.id("username")));
         driver.findElement(By.id("username")).sendKeys("passport3");
         driver.findElement(By.id("password")).sendKeys("qwe123");
         driver.findElement(By.id("submit")).click();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...