上下文
我有一个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=...
。
问题
因为我不知道该怎么做,至少可以提供一些线索吗?
非常感谢您。
答案 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);
如果这不能解决您的问题,请忽略。