Ошибка относительно переменной в Selenium TestNG - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь запустить ниже код из IntelliJ, но по очереди ошибка (ниже). Я просто хочу нажать кнопку на веб-сайте, используя локатор Xpath и добавив утверждение для проверки моего теста. Каков наилучший подход для создания такого простого теста?


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.annotations.Test;
import java.util.List;

public class ButtonTest extends CommonScenario {

  private static WebDriver driver;

  @Test()
  public void button_test() {
    button b = driver.findElements(By.xpath("//button[text()='Teleworking"));
  }

Ошибка:

Error:(16, 5) java: cannot find symbol
      symbol:   class button
      location: class selenium.ButtonTest

Ответы [ 3 ]

1 голос
/ 29 октября 2019

Нет класса button. driver.findElements возвращает список WebElement

List<WebElement> elements = driver.findElements();

Если вы хотите, чтобы один элемент использовал driver.findElement

WebElement element = driver.findElement();
0 голосов
/ 29 октября 2019

Проверьте, есть ли у вас один элемент с xpath "//button[text()='Teleworking". Если это так, то обновите ваш скрипт, как показано ниже:

 WebElement button = driver.findElement(By.xpath("//button[text()='Teleworking"));

Если у вас более одной кнопки с тем же xpath, что и выше, вам нужно обработать его через List, и в этом случае вы можете использовать ниже XPath.

List<WebElement> button = driver.findElements(By.xpath("//button[text()='Teleworking"));
0 голосов
/ 29 октября 2019

Нет класса с именем button для инициации объекта b. Попробуйте WebElements. Таким образом, код метода будет

public void button_test() {
List<WebElement> b = driver.findElements(By.xpath("//button[text()='Teleworking"));
}

И обратите внимание, что вы используете findElements, а не findElement, который бы возвращал список веб-элементов, а не один веб-элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...