单击带有 Selenium (RSelenium) 的自定义元素

Clicking on a custom element with Selenium (RSelenium)

我需要单击具有以下唯一标识符的元素:

<mat-icon
class="mat-icon notranslate icon-arrow-down-tail mat-icon-no-color"
fontset="icon-arrow-down-tail"
role="img"
aria-hidden="true">
   ::before
</mat-icon>

认为这是在 RSelenium 中 select 自定义元素的正确方法:

down <- remDr$findElement(using="xpath", value="//mat-icon[@class='mat-icon.notranslate.icon-arrow-down-tail.mat-icon-no-color']")

元素位于 iframe 中。我已经切换到 iframe,但我想可能还会有更复杂的事情发生。我正在尝试缩小问题的根源。

所以,我的问题是:我是否正确 select 自定义元素?如果没有,我该怎么做?如果我知道我 select 正确地编辑了它,我就能找到调试的其他地方...

(网站是 proprietary/requires 登录名,否则我会分享它)。

如果要提取值的元素在iframe中,需要先切换焦点,然后才能通过ID/Class

继续获取元素

例如,我曾经从名为 "https://forexsb.com/historical-forex-data"

的站点单击 Iframe 内的按钮
iframe_detect <- remDr$findElements(using = "xpath", value = "//iframe[@id='data-app-frame']")
remDr$switchToFrame(iframe_detect[[1]])
load_data_element <- remDr$findElement(using="xpath", value="//button[@id='btn-load-data']")
load_data_element$clickElement()

在上面你使用的定义Class元素:

down <- remDr$findElement(using="xpath", value="//mat-icon[@class='mat-icon.notranslate.icon-arrow-down-tail.mat-icon-no-color']")

我想这是一个正确的完整 class 标识符,因为 class 有多个名称与点运算符联合。但根据我的经验,如果使用这些 can out 不起作用,我只使用点运算符

之前的第一个 class 名称

所以如果我必须重写(注意:只有在没有更多元素具有相同的 class 名称时才有效,否则它可能会占用整个元素匹配 Class):

down <- remDr$findElement(using="xpath", value="//mat-icon[@class='mat-icon']")