如何遍历字符串多次提取和存储特定内容

时间:2019-12-13 09:28:43

标签: java

上下文

我有一个String,看起来像XPath:

//img[@id='imgError' and @src='../plaf/images/default/menu/menu_down.gif' and @alt='Authorise' and @ref_element = 'Object/Common/Frames/frame1']

客观

我的目标是提取所有@ref_element=...元素并切换到相应的帧。

frame1的XPath是//frame[contains(@id, 'frame1') and contains(@name, 'frame1')]

所以预期结果应该是:

// switch into the frame thanks to xpath extracted before
driver.switchTo().frame(driver.find_element_by_xpath("//frame[contains(@id, 'frame1') and contains(@name, 'frame1')]"));
// do an action
driver.find_element_by_xpath("//img[@id='imgError' and @src='../plaf/images/default/menu/menu_down.gif' and @alt='Authorise']").click()

获取@ref_element的XPath并切换到另一帧没有任何问题。

但是,我需要帮助来找到一种算法来浏览初始字符串并提取@ref_element=...

问题

因为我不知道该怎么做,至少可以提供一些线索吗?

非常感谢您。

1 个答案:

答案 0 :(得分:1)

我没有完全解决问题,但是如果您要从 @ ref_element ='Object / Common / Frames / frame1'中查找 Object / Common / Frames / frame1 ,然后按照以下代码片段可以提供帮助-

// this gives index of `'` after @ref_element
int x = "input".indexOf("@ref_element='");

// this gives index of `'` after x
int y = "input".indexOf("'", x + 1);

return "input".substring(x+1, y);

如果这不能解决您的问题,请忽略。