如何将字符串转换为按类型

2024-04-19

如何将 String 转换为 By 类型。

以下是我的场景: 按以下方式将对象标识保留在属性文件中

username=By.id("username")
password=By.id("password")

在应用程序中我想检索像

Properties prop=new Properties();
prop.load("above properties file path")

driver.findelement(prop.getProperty("username"))//在 Eclipse 中,它抱怨说“WebDriver 类型中的方法 findElement(By) 不适用于参数 (String)”

那么有人可以帮助我吗?

我可以使用如下或其他格式,但我想要上述的解决方案

username="//*[@id='username']"
username="username"
driver.findElement(By.xpath(prop.getProperty("username"))
driver.findElement(By.id(prop.getProperty("username"))

您可以创建一个解析器方法,该方法将返回所需的定位器对象,如下所示:

public static By locatorParser(String locator) {

By loc = By.id(locator);

if (locator.contains("id"))
    loc = By.id(locator.substring(locator.indexOf("\"") + 1,
        locator.length() - 2));

else if (locator.contains("name"))
    loc = By.name(locator.substring(locator.indexOf("\"") + 1,
        locator.length() - 2));

if (locator.contains("xpath"))
    loc = By.xpath(locator.substring(locator.indexOf("\"") + 1,
        locator.length() - 2));

return loc;

}

可以通过以下方式在您的代码中调用:

driver.findElement(locatorParser(prop.getProperty("username")));

添加了 id、name、xpath 的逻辑。您可以修改相同的方法来添加所有可用的定位器。希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将字符串转换为按类型 的相关文章

  • SWT - 表查看器 - 隐藏列并从列中获取值

    我正在尝试从表中的数据创建一个数组列表 我需要从可见列中获取值 但我还需要从表中不可见的列中获取值 将 SWT 与表查看器一起使用 我不知道如何不显示表中的列 我也不知道如何通过指定列名从表中提取数据 我一直使用 Swing 所以我一直使用
  • Javafx-场景快照不显示值和系列

    我制作了一个非常短的应用程序 它使用 javafx 生成图表 应用程序显示正确的值 图表 但当我做快照时 图像仅显示轴和标签 但不显示系列和值 stage setTitle Line Chart Sample final DateAxis
  • 二维数组列表

    我听说过使用这样的二维数组 String strArr 但是有什么方法可以用列表来做到这一点吗 也许是这样的 ArrayList
  • 在基于 RESTful 的应用程序中管理状态

    我们正在评估用于基于 Web 的应用程序的技术 一些建议是采用基于 RESTful 的服务方法 技术堆栈 1 春天 2 Apache CXF JAX RS 我的问题是 1 如何在请求之间管理状态 例如 用户已经过身份验证 现在他正在发出一系
  • Java替换特殊字符

    我试图用仅包含特殊字符的模式替换文件中的特殊字符 但它似乎不起作用 String special Something great that special special replaceAll as 但是 当我运行时 我得到原始字符串而不是
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • 了解 Android 上的默认键盘

    我想知道 Android 中用户选择的默认键盘 我知道我可以使用以下命令访问启用的输入法列表InputMethodManager 但我想知道用户当前使用的是哪一个 到目前为止 我已经尝试获取当前的输入法子类型 InputMethodMana
  • 如何在 Java 中将 hashmap 转换为 JSON 对象 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在 Java 中将 hashmap 转换或转换为 JSON 对象 然后再次将 JSON 对象转换为 JSON 字符串 您可以使用 new
  • 如何使用 RestTemplate 禁用编码

    我正在使用 REST 模板有意在请求 uri 中发送 例如 items a b String responseEntity restTemplate exchange items a b requestObj getHttpMethod r
  • 将resourceBundle与外部文件java一起使用

    我一直在阅读有关此问题的其他问题和答案 但我不明白资源边界是如何完全工作的 我认为这与 Joomla 使用多语言选项的方式类似 基本上 您有要阅读的不同语言的不同消息的文件 所以我在 src Lang 文件夹中创建了 System prop
  • 如何从github项目获取jar? [复制]

    这个问题在这里已经有答案了 我想使用官方网站上的 kSoap2 android 库http simpligility github io ksoap2 android index html http simpligility github
  • 如何使用java.util.concurrent包实现后台线程?

    这是我首先使用的代码 但在最新的 Android 版本中AsyncTask类已被弃用并且 因此它没有响应 然后我使用了Thread类 但该类也不起作用 我想要与我得到的结果相同的结果AsyncTask班级 我知道我必须使用 java uti
  • 预期类型:java.lang.Integer,实际值:org.hibernate.id.IdentifierGeneratorHelper$2

    当我尝试调用 save 方法时 我的代码中出现此错误 当我在 JBoss 服务器上时 此方法工作正常 现在我转到 tomcat 服务器 7 ERROR HHH000123 IllegalArgumentException in class
  • CoreNLP 如何识别小写的命名实体,例如 kobe bryant?

    我遇到一个问题 CoreNLP 只能识别以大写字符开头的命名实体 例如科比 布莱恩特 Kobe Bryant 但无法识别科比 布莱恩特 kobe bryant 作为一个人 那么CoreNLP如何识别以小写字符开头的命名实体 赞赏它 首先 您
  • 如何将java数组列表转换为javascript数组? [复制]

    这个问题在这里已经有答案了 我们如何将 String 对象的 java arraylist 转换为 javascript 数组 这就是我正在做的事情 但我正在寻找更好的方法来做到这一点 我不想迭代数组列表 var myArray
  • Swing JTable:当行可见或滚动到底部时发生事件?

    我正在寻找一种方法 以便在 JTable 滚动时收到通知 以便特定行变得可见 或者在表底部滚动到视图中时失败 理想情况下 这应该在不轮询的情况下完成 而是通过一些事件触发来完成 有任何想法吗 Add a ChangeListener到滚动窗
  • Selenium:从文本框中删除内容

    通过硒 如何从文本框中删除内容 我必须使用 selenium 命令从文本框中删除最后 2 个字符 例如ABCD 到AB 尝试这个 selenium type text box object ABCD selenium typeKeys te
  • 使用 Android API 发布推文

    我一直在寻找一种使用 Android 应用程序发布推文的方法 但我发现的所有方法都不起作用 我不得不承认 Twitter 的 API 并不是那么容易理解 但是我的代码并不长 而且我看不出我的错误在哪里 这是我的代码 public class
  • 总小时数无法从 Android 插入 MySQL

    我使用以下公式获得总小时数 public void updateTotalHours int a SplitTime objMyCustomBaseAdapter getFistTime int b SplitTime objMyCusto
  • Selenium 3.7 和 Firefox ESR 52.4.1 是否需要 geckodriver?

    我的理解是 当使用Selenium WebDriver来自 NuGet 的 v3 7 我需要当前版本的 geckodriver 才能与 Firefox ESR v52 4 1 交互 但是 我已经成功运行测试并成功通过withoutgecko

随机推荐