Селен не может найти элемент по метке - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь найти подсказку на моей странице demo.rezi.co с левой стороны, на которой указаны домовладельцы, на основе метки атрибута. Я набросал код ниже.

Когда я запускаю его, он говорит, что:

Исключение в потоке "main" org.openqa.selenium.NoSuchElementException: нет такого элемента: невозможно найти элемент: {"method": "xpath", "selector": "// a [@ label = 'LANDLORDS' ] "}

Это мой код:

// Test Landlord Tooltip
String expectedToolTip = "This is a test";
WebElement landlord = Driver.findElement(By.xpath("//a[@label='LANDLORDS']"));
System.out.println(landlord.getTagName());

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Я все еще не уверен, правильно ли я понял вариант использования . Однако на веб-странице demo.rezi.co вам нужно Наведите указатель мыши на элемент с текстом LANDLORDS , а затем вы можете извлечь Tool Tip , и вы можете использовать следующее решение:

  • Кодовый блок:

    import java.util.List;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.interactions.Actions;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    public class q53216692_MouseHover {
    
        public static void main(String[] args) {
    
            System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
            ChromeOptions options = new ChromeOptions();
            options.addArguments("start-maximized");
            options.addArguments("disable-infobars");
            WebDriver Driver = new ChromeDriver(options);
            Driver.get("https://demo.rezi.co/#!/tenant");
            WebElement myElement = new WebDriverWait(Driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label[.='LANDLORDS']")));
            new Actions(Driver).moveToElement(myElement).perform();
            List<WebElement> tool_tip_items = new WebDriverWait(Driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//label[.='LANDLORDS']//following::div[1]//div[@class='layout-column']/label[1]")));
            for (WebElement tool_tip:tool_tip_items)
                System.out.println(tool_tip.getText());
        }
    }
    
  • Выход на консоль:

    UPFRONT
    ADVANTAGE
    
0 голосов
/ 09 ноября 2018

Метка не является атрибутом ссылки, это дочерний элемент. Если вы действительно хотите выбрать a по тексту LANDLORDS, вам нужно использовать что-то вроде этого:

"//label[contains(text(),'LANDLORDS')]/ancestor::a"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...