#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;
}