RSelenium 选择具有动态 id 的 xpath
RSelenium selecting an xpath with dynamic id
我在使用 RSelenium 包时遇到了一个小问题,我找不到解决办法。我正在尝试 select 网页上 table 中的一个元素并单击它,我通常会使用
remdr$findElment('xpath',*insertxpathhere*)$clickElement()
其中 remdr 是远程会话。我 运行 遇到的问题是每次页面加载时,我尝试 select 的元素的 xpath 都会发生变化。我已经重新加载页面 3 次并在下面复制了元素的 xpath,这样您就可以看到它是如何变化的。
//*[@id="libraryPicker-1529934941230-datasets"]/div[2]/div/table/tbody/tr[5]/td[2]
//*[@id="libraryPicker-1529936019517-datasets"]/div[2]/div/table/tbody/tr[5]/td[2]
//*[@id="libraryPicker-1529936071347-datasets"]/div[2]/div/table/tbody/tr[5]/td[2]
如您所见,每次加载页面时,13 位数字都会发生变化,并且似乎没有任何可识别的模式,可以让我制作一堆虚拟 xpath 并检查是否有效。我考虑过使用通配符元素(例如 //*[@id="libraryPicker-wildcardelement),但在 R 中找不到这样做的方法。 css select或者这个元素也是以同样的方式动态的。
每次我 运行 脚本时我都需要一些方法来识别这个元素,尽管它每次都改变它的 xpath 标识符。
有人能帮我解决这个问题吗?谢谢!
根据您的代码试验来识别元素,您可以使用以下 xpath:
//*[starts-with(@id,'libraryPicker')][contains(@id,'datasets')]/div[2]/div/table/tbody/tr[5]/td[2]
我在使用 RSelenium 包时遇到了一个小问题,我找不到解决办法。我正在尝试 select 网页上 table 中的一个元素并单击它,我通常会使用
remdr$findElment('xpath',*insertxpathhere*)$clickElement()
其中 remdr 是远程会话。我 运行 遇到的问题是每次页面加载时,我尝试 select 的元素的 xpath 都会发生变化。我已经重新加载页面 3 次并在下面复制了元素的 xpath,这样您就可以看到它是如何变化的。
//*[@id="libraryPicker-1529934941230-datasets"]/div[2]/div/table/tbody/tr[5]/td[2]
//*[@id="libraryPicker-1529936019517-datasets"]/div[2]/div/table/tbody/tr[5]/td[2]
//*[@id="libraryPicker-1529936071347-datasets"]/div[2]/div/table/tbody/tr[5]/td[2]
如您所见,每次加载页面时,13 位数字都会发生变化,并且似乎没有任何可识别的模式,可以让我制作一堆虚拟 xpath 并检查是否有效。我考虑过使用通配符元素(例如 //*[@id="libraryPicker-wildcardelement),但在 R 中找不到这样做的方法。 css select或者这个元素也是以同样的方式动态的。
每次我 运行 脚本时我都需要一些方法来识别这个元素,尽管它每次都改变它的 xpath 标识符。
有人能帮我解决这个问题吗?谢谢!
根据您的代码试验来识别元素,您可以使用以下 xpath:
//*[starts-with(@id,'libraryPicker')][contains(@id,'datasets')]/div[2]/div/table/tbody/tr[5]/td[2]