当前位置: 首页 > 知识库问答 >
问题:

将变量传递给Selenium Java中使用注释定义的webelement

暨弘毅
2023-03-14

我使用注释在selenium java中声明webelement。在大多数情况下,我有简单的定位器:

@FindBy(how = How.ID, using="login")
WebElement btnLogin;

public void clickLogin() {
        btnLogin.click()
    }

但是有时我需要将变量传递到xpath或任何其他定位器。在这种情况下,我不声明webelement之前,而是在函数中:

 public void clickElement(String elementName) {
         driver.findElementByXpath("//android.widget.TextView[@text='" + elementName + "']")
    }

我不喜欢它,因为定位器应该在一个地方被调用,而不是与代码可见性的函数混合

我想做这样的事情:

String elementXpathPrePart= "//android.widget.TextView[@text='";
String elementXpathPostPart = "']";

然后呢

public void clickElement(String elementName) {
             driver.findElementByXpath(elementXpathPrePart + elementName + elementXpathPostPart )
        }

你有什么解决办法吗?

共有1个答案

邹博裕
2023-03-14

当您使用页面工厂时,这是页面对象模型中的一个常见问题。对此的解决方案:

>

  • 使用常量,java文件和保持所有的xpath有从那里引用

    公共类常量{公共静态最终字符串myxpath="//输入[@id='用户名']}页内类:

    @FindBy(how=how.ID,使用=Constants.myxpath)WebElement btnLogin;

    代码

    public void clickElement(String elementName) {
                 driver.findElementByXpath(By. xpath(Constants.myxpath ).click()
            }
    

  •  类似资料:
    • 我定义了一个变量: 在

    • 假设我有一个带有属性的注释: 我想创建一个包含多个元注释的复合注释,包括一个带有属性的注释 有没有一种方法可以将复合注释的属性传递给其中一个元注释? 例如,类似这样的东西: 这相当于,但比 谢谢! PS为我对示例注释的错误选择表示歉意-我没有javax。注射@记住命名注释,只是一些具有属性的任意注释。 谢谢大家的回答/评论。 这显然是不可能的。然而,碰巧我的案例有一个简单的解决方法,我将与大家分享

    • 问题内容: 我对此完全迷失了;我正在使用NodeJS来获取JSON,我需要将变量传递给我的页面并让JavaScript使用数据。 那就是我的Express代码(出于测试目的非常简单);现在使用EJS,我想收集这些我知道要呈现在页面上的数据, 但是我需要能够在JavaScript中收集这些数据(如果可能在.js文件中),但现在只是在我尝试过的“警告”框中显示变量 在翡翠中就像或。我可以在EJS中做类

    • 问题内容: 我有类似下面的代码: 但是,该变量未在ActionListener类的范围内定义。如何传递变量? 问题答案: 除了Hovercraft的答案外,您还应注意,您不会被迫对侦听器使用匿名类。气垫船的答案代码类似于以下代码:

    • 问题内容: 我有Google地图提供的JavaScript值,需要将其保存在MySQL数据库中。 其实我有变量 我需要将该变量传递给PHP变量lugar 问题答案: 如果要在页面转换时进行操作,则可以通过表单或在URL中传递它,然后仅使用或接收变量。 如果您需要无缝完成它,那么您可能需要考虑使用AJAX。

    • 问题内容: 目前,我正在使用Ajax来开发现有脚本,这是我以前从未使用过的东西。我在javascript文件中设置了一个变量,该变量从页面上的输入字段获取其值。我只需要使用Ajax将其发布到我的PHP页面,不知道从哪里开始, 我不确定您需要查看什么代码,但是我的javascript / AJAX代码是,我需要传递的变量是’var credoff’ 一定要采用这种格式吗? 问题答案: