Проверка в Selenium webdriver

#selenium-webdriver #automated-tests #verification

#selenium-webdriver #автоматизированные тесты #проверка

Вопрос:

Я новичок в мире автоматизации, я пытаюсь проверить элемент в списке, чтобы увидеть, был ли он удален или нет.. Я использовал следующий синтаксис, но в нем говорится, что компания найдена, что не должно быть ответом.. Пожалуйста, помогите

 internal void verifycompany()

{

        Thread.Sleep(1000);
        int b = 1;
        bool CompanyName = Driver.driver.FindElement(By.XPath(".//*[@id='companies']/tr["   b   "]/td[1]")).Displayed;
        if (CompanyName == false)
        {
            Console.WriteLine("company not found, test succesful");
            Base.test.Log(LogStatus.Info, "company not found, test succesful");
        }
        else
        {
            b  ;
            Base.test.Log(LogStatus.Info, "Company found, test unscuccesful");
            }
        }
  

Комментарии:

1. Не могли бы вы также поделиться соответствующим HTML??

Ответ №1:

К сожалению, isDisplayed не возвращает false, если он не отображается, он выдает исключение, в котором говорится, что его не удалось найти (блин, спасибо).

Что я сделал, так это создал повторно используемый метод, в котором я могу передать элемент, и он выдаст его через try catch и вернет true, если найдено, или false, если генерируется исключение.

Что-то вроде приведенного ниже — я использую Java, но это должно помочь вам найти способ обойти вашу проблему:

 public boolean isDisplayed(WebElement webElement) {
    try {
        return element.isDisplayed();
    } catch (NoSuchElementException e) {
        return false;
    }
}
  

Если вы не хотите создавать повторно используемый метод, просто добавьте строку find element в try catch.

 boolean CompanyName;

try {
    CompanyName = findElementAndIsDisplayedCode;
} catch (NoSuchElementException e) {
    CompanyName = false;
}