RSelenium弹出窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSelenium弹出窗口相关的知识,希望对你有一定的参考价值。

我试图在html页面中打开一个弹出链接:

<a class="popup-link" href="/PPI/displayRemarks.do?itemId=100582281" title="Add Remarks for the item" onclick="return false" id="anch_12">Add remarks</a>

我尝试使用ID来查找元素:

remDr$findElement(using = 'id', "anch_12")

我收到此错误:

Selenium message:{"errorMessage":"Unable to find element with id 'anch_12'","request":{"headers":{"Accept":"application/json, text/xml, application/xml, /","Accept-Encoding":"gzip, deflate","Content-Length":"32","Content-Type":"application/json","Host":"localhost:4567","User-Agent":"libcurl/7.56.0 r-curl/3.0 httr/1.3.1"},"httpVersion":"1.1","method":"POST","post":"{"using":"id","value":"anch_12"}","url":"/element","urlParsed":{"anchor":"","query":"","file":"element","directory":"/","path":"/element","relative":"/element","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/element","queryKey":{},"chunks":["element"]},"urlOriginal":"/session/c6eac2b0-1bfd-11e8-8fbd-fbf94221e6d1/element"}}

错误摘要:

NoSuchElement Detail: An element could not be located on the page using the given search parameters. class: org.openqa.selenium.NoSuchElementException Further Details: run errorDetails method
答案

id anch_12以及带有itemId = 100582281的值的href属性看起来是动态的。因此,你必须构建一个动态xpath如下:

remDr$findElement(using = 'xpath', "//a[@class='popup-link' and contains(@href,'/PPI/displayRemarks.do?itemId=') and starts-with(@id,'anch_')]")
//or
remDr$findElement(using = 'xpath', "//a[@class='popup-link' and contains(@title,'Add Remarks for the item') and starts-with(@id,'anch_')]")

以上是关于RSelenium弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法

仅在单击某个按钮时显示弹出窗口

使用 RSelenium 下载 pdf

在 recyclerview 适配器类中显示自定义弹出窗口 - Android Java

在片段中使用列表视图

如何在片段中获取rootview?