java - Angular 元素定位

标签 java angularjs selenium selenium-webdriver webdriver

由于刚刚开始使用 Angular 的新项目(并且还有另一个用 Java 编写测试的项目,因此如果有可能的话不会使用 Protractor ),因此很难找到带有 xpath 的元素。 请帮助我(虽然乍一看很简单)找到主页按钮,这对我来说是一个很大的困惑。这是页面源代码:

<ul _ngcontent-c9="" class="be-inline-menu be-font--be">

    <!---->
      <!---->

      <!----><be-inline-menu-item _ngcontent-c2="" _nghost-c10="" class=""><li _ngcontent-c10="" class="be-inline-menu__item">
    <a _ngcontent-c10="" class="be-inline-menu__item__inner be-typo-be be-inline-menu__item__inner--is-active" href="/home">
     Home
   <!---->

因此,尝试使用这个(在检查元素时)但一无所获:

//ul[@_ngcontent-c9.class='be-inline-menu be-font--be']//a

提前谢谢您。
enter image description here

最佳答案

要查找文本为 Home 的按钮,您可以使用以下任一选项:

  • css选择器:

    driver.findElement(By.cssSelector("ul.be-inline-menu.be-font--be a.be-inline-menu__item__inner.be-typo-be.be-inline-menu__item__inner--is-active[href=/home]")).click();
    
  • xpath:

    driver.findElement(By.xpath("//ul[@class='be-inline-menu be-font--be']//a[@class='be-inline-menu__item__inner be-typo-be be-inline-menu__item__inner--is-active' and @href='/home']")).click();
    

关于java - Angular 元素定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47902822/

相关文章:

java - 传递参数 - 接口(interface)实现与实现接口(interface)的具体类的对象

java - 如何将一种语言(例如 python)绑定(bind)到另一种语言(例如 C++)?

angularjs - 如何使用 stormpath 对 nodejs api 和 auth 进行 angularjs 调用

java - Selenium WebDriver 在线程 "main"org.openqa.selenium.ElementNotInteractableException 中抛出异常

python selenium webdriver safari 驱动程序

java - 正确配置spring security oauth2

java - 在 Spring MVC 应用程序中根据数据源 (XML) 验证表单输入的方法

angularjs - 在链接函数中设置作用域属性

AngularJS + Jasmine 测试脚本失败 fn 不起作用

java - 使用 TestNG.xml 文件并行执行 2 个测试用例