【问题标题】:How to locate the web element?如何定位网页元素?
【发布时间】:2019-08-22 05:58:37
【问题描述】:
<a class="top-menu-item float-start  p-2" href="/StudentPortal/Home/Login"> تسجيل دخول </a>

出于自动化目的,我无法找到上述元素

我已经尝试了下面的 xpath:

driver.findElement(By.xpath("/html/body/header/div[1]/div/a[3]"));

driver.findElement(By.xpath("/html/body/header/div[1]/div/a[3]"));

【问题讨论】:

  • 请添加您要查找的元素的html。

标签: selenium-webdriver xpath css-selectors webdriver


【解决方案1】:

您可以使用以下定位器:

Xpath CSS 身份证

【讨论】:

    【解决方案2】:

    要定位元素,您可以使用Locator Strategies

    • 部分链接文本

      WebElement element = driver.findElement(By.partialLinkText("تسجيل دخول"));
      
    • cssSelector

      WebElement element = driver.findElement(By.cssSelector("a.top-menu-item.float-start.p-2[href='/StudentPortal/Home/Login']"));
      
    • xpath

      WebElement element = driver.findElement(By.xpath("//a[@class='top-menu-item float-start  p-2' and @href='/StudentPortal/Home/Login']"));
      

    【讨论】:

    • 您的第一个定位器将不起作用,因为您缺少文本两侧的填充空间。其余的只是混乱,因为您将元素中的所有内容都包含在定位器中,这只会使它们更容易变脆。
    【解决方案3】:

    你可以试试下面的xpath——

    driver.findElement(By.xpath("//a[contains(@href,'/StudentPortal/Home/Login')"))

    【讨论】:

    • 你不应该需要contains(),因为这是href中唯一的字符串。
    猜你喜欢
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 2019-03-16
    • 1970-01-01
    相关资源
    最近更新 更多