【发布时间】:2018-03-31 11:08:01
【问题描述】:
我有一个 SAPUI 页面,我正在使用 Selenium WebDriver 作为自动化测试框架进行导航。
在我遇到点击的流程中有一个点实际上有 3 个类似的 xpath。
问题在于 id 是动态的,除了 aria-posinset 和文本之外的所有其他内容也是动态的。我永远无法通过使用 id 来点击它。另外,我仍然无法使用下面的 xpath 来点击它。它只是说元素不可点击。当我使用 Chrome 开发工具通过 :hover 查找 xpath 时,下面的第三个突出显示是实际悬停在点击上的那个。所以,我想使用这个 xpath 的第三个亮点。各位大神能帮帮我吗?
这是有问题的 xpath:
//a[@aria-posinset='3' and contains(text(),'Quotes')]
这些是 Chrome 开发者工具中具有相同 xpath 的 3 个亮点。
1:
<a id="navigationitemNAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c_2293" data-sap-ui="navigationitemNAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c_2293" data-flex-dragtype="FacetTab" data-flex-modelid="NAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c" data-flex-component="/BYD_COD/SalesOnDemand/Opportunity/UI/COD_Opportunity_TI.TI.uicomponent&null" data-sap-automation-id="NAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c" href="#" aria-setsize="18" aria-posinset="3" role="menuitemradio" class="sapUiUx3NavBarItem" aria-checked="false">Quotes</a>
2.
<a id="navigationitemNAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c_3033" data-sap-ui="navigationitemNAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c_3033" data-flex-dragtype="FacetTab" data-flex-modelid="NAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c" data-flex-component="/BYD_COD/SalesOnDemand/Opportunity/UI/COD_Opportunity_TI.TI.uicomponent&null" data-sap-automation-id="NAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c" href="#" aria-setsize="18" aria-posinset="3" role="menuitemradio" class="sapUiUx3NavBarItem" aria-checked="false">Quotes</a>
3.
<a id="navigationitemNAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c_3773" data-sap-ui="navigationitemNAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c_3773" data-flex-dragtype="FacetTab" data-flex-modelid="NAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c" data-flex-component="/BYD_COD/SalesOnDemand/Opportunity/UI/COD_Opportunity_TI.TI.uicomponent&null" data-sap-automation-id="NAVIGATIONITEMID_7bc2f6d569b74f2fa33d38fa9962135c" href="#" aria-setsize="18" aria-posinset="3" role="menuitemradio" class="sapUiUx3NavBarItem" aria-checked="false">Quotes</a>
如何在此处单击第三个 xpath?我实际上想点击“报价”,这将继续前进。
以防万一我不清楚,我将 Selenium WebDriver 与 Java 一起使用,浏览器是 Firefox。
更新:
我尝试使用 Actions 类,但即使这样也失败了,但这次出现了不同的错误:
//div[@role='Main']/div[2]/div[@role='Navigation']/nav/ul/li/a[@aria-posinset='3' and contains(text(),'Quotes')]
现在我收到此错误:
Element <a id="navigationitemu3p1aB5MBqswlRFv6wRSym_91" class="sapUiUx3NavBarItem" href="#"> is not clickable at point (902.2166519165039,67.25833129882812) because another element <div id="sapClientBusyIndicatorMobileContainer" class="sapClientBusyIndicatorMobileContainer"> obscures it
【问题讨论】:
-
如果我没记错的话,您的第一个和第二个
<a>标签是相同的,这与预期不符。请问可以再看一遍吗? -
我改了
-
您遇到异常了吗?还是它找到了错误的元素?这个 xpath 对我有用
xpath=//a[text()='Quotes'][3]。 -
无法点击xpath定义的元素。我没有像你说的那样使用[3]。所以按照语法,我应该在最后添加一个 [3] 吗?因为当我在我的 xpath 中使用 [3] 时,就像在原始帖子中一样,它不起作用。
-
我假设这是一些更大的表格的一部分,等等。您可能必须根据包含的其他元素的文本单击引用链接,例如这些是事物 A、事物 B 和事物 C 的引用链接,您想要单击事物 C 旁边的引用链接。为第三个链接发布一些周围的 HTML,并告诉我们第三个链接是什么让您想要点击它,即它在文本 Thing C 或其他内容旁边。
标签: java selenium firefox webdriver sapui5