我可以通过java代码生成HTML页面的xpath吗

我可以通过java代码生成HTML页面的xpath吗,java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,环境 我是新来的Selenium,所以我有些担心,请让我知道这一点--- 对于这个需求,我不想使用firebug或任何其他工具,因为我的环境在一段时间后会发生变化 在新环境中,这些项将是相同的,但新环境中的id或xpath将是不同的,但我的代码应该适用于任何环境 问题 那么,他们有没有办法在运行时通过java获得xpath 我能否通过java代码生成HTML页面的xpath 或者他们还有其他的方法吗 不,你不能。Java代码基于在html中找到的定位器(id、类、xpath等),代码本身无

环境

我是新来的
Selenium
,所以我有些担心,请让我知道这一点---

  • 对于这个需求,我不想使用
    firebug
    或任何其他工具,因为我的环境在一段时间后会发生变化

  • 在新环境中,这些项将是相同的,但新环境中的id或
    xpath
    将是不同的,但我的代码应该适用于任何环境

问题

  • 那么,他们有没有办法在
    运行时通过
    java
    获得
    xpath

  • 我能否通过
    java
    代码生成
    HTML
    页面的
    xpath

  • 或者他们还有其他的方法吗


  • 不,你不能。Java代码基于在html中找到的定位器(id、类、
    xpath
    等),代码本身无法完成这项工作


    至于您的问题,Id不会随着环境的变化而变化,通常类也不会变化。尝试通过这些定位器定位元素,并尽量避免xpath,这样在任何环境下运行代码都不会有问题。

    有一种方法可以尝试

    Selenium有8个定位器,通过它们可以找到元素

    在这8个定位器中,有3个定位器如下:-

    链接文本

    选择包含与指定链接文本匹配的文本的链接(锚定标记)元素

    部分链接文本

    选择包含与指定部分链接文本匹配的文本的链接(锚定标记)元素

    标签名称

    使用标记名定位元素

    现在,Selenium将根据您的文本或部分文本在DOM上查找元素

    但这种方式并不十分稳健。 查看您是否能够在上述定位器的帮助下管理/定位所有必需的元素

    注意:-确保您的文本至少不会进一步更改


    也许对你有帮助:)

    你的问题不够清楚。请给出当前环境(以及相应的HTML)和“新环境”(以及相应的HTML)中的XPath示例。当然,您可以为给定的
    元素
    “生成”XPath,但是您首先如何定位
    元素
    ?如果按照不同的标准(如下面的答案中所述,例如链接文本,…)查找
    元素
    ,为什么仍然需要XPath?