硒无法通过标签定位元素

时间:2018-11-08 21:51:08

标签: selenium selenium-webdriver xpath mousehover webdriverwait

我正在尝试在页面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 :(得分:0)

标签不是链接的属性,而是子级。如果您确实想通过文本a选择LANDLORDS,则必须使用以下命令:

"//label[contains(text(),'LANDLORDS')]/ancestor::a"

答案 1 :(得分:0)

我仍然不确定我是否正确理解了用例。但是,在网页13.3125 上,您需要将鼠标悬停在具有 LANDLORDS 文本的元素上,将鼠标悬停在该元素上,然后提取工具提示您可以使用以下解决方案:

  • 代码块:

    demo.rezi.co
  • 控制台输出:

    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());
        }
    }