我正在尝试在 Rstudio 中使用 Rselenium 自动登录,请参见下文
remote_driver <- rsDriver(browser = "firefox",
geckover = "0.33.0",
verbose = FALSE,
port = 4457L)
# Assign the remote driver object to a variable
driver <- remote_driver[["client"]]
driver$navigate("https://etopup.gloworld.com:8443/agentportal/agentportal/Application.html#")
我可以轻松找到
username
和 userID
,没有任何错误:
Sys.sleep(2)
reseller_id_input <- driver$findElement(using = 'id', "gwt-debug-Reseller_ID")
# Supply a value to the input field (e.g., "your_reseller_id")
reseller_id_input$sendKeysToElement(list("Napset"))
user_id_input <- driver$findElement(using = 'xpath', "//div[contains(text(),'User ID:')]//following::input[1]")
#Supply a value to the input field (e.g., "your_user_id")
user_id_input$sendKeysToElement(list("Yodigzy"))
问题是密码部分,当我找到密码字段并发送密码文本时,它不会反映在密码字段中,并且不会显示或显示任何错误:
#Locate the Password input field
password_field <- driver$findElement(using = "id", value = "gwt-debug-Password")
password_field$sendKeysToElement(list("your-password"))
没有此密码,我无法继续登录。这背后有什么逻辑吗?我真的需要帮助。
谢谢
问题是页面上有两个 INPUT 字段,ID 为“gwt-debug-Password”。页面上的第一个不可见,这就是您看到此行为的原因。
解决此问题的一种方法是使用
findElements()
(复数),然后获取第二个元素。我不知道 R,但经过一番谷歌搜索后,我认为它可能是这样的,
password_field <- driver$findElements(using = "id", value = "gwt-debug-Password")
password_field[[2]]$sendKeysToElement(list("your-password"))