我已使用this教程来了解RSelenium。对我来说很好。
我现在尝试在另一页(Github)上使用该方法,但是我不确定如何找到将鼠标聚焦在正确字段上的CSS标签。
library(RSelenium)
driver <- rsDriver(browser = "chrome") # start browser
remDr <- driver[["client"]]
# Go to desired webpage
remDr$navigate("https://github.com/login")
login_id <- remDr$findElement(using = "css", "login_field")
login_id $sendKeysToElement(list("my_login_name"))
如果我使用选择器小工具,它会告诉我电子邮件/用户名框的标签为#login_field
。
如果我inspect
的那部分网页,我被告知以下几位对应于该框:
<input type="text" name="login" id="login_field" class="form-control input-block" tabindex="1" autocapitalize="off" autocorrect="off" autofocus="autofocus">
但是如果运行上面的代码,则会收到以下错误消息:
Selenium message:no such element: Unable to locate element: {"method":"css selector","selector":"login_field"}
(Session info: chrome=69.0.3497.100)
(Driver info: chromedriver=70.0.3538.16 (16ed95b41bb05e565b11fb66ac33c660b721f778),platform=Windows NT 10.0.14393 x86_64)
Error: Summary: NoSuchElement
Detail: An element could not be located on the page using the given search parameters.
Further Details: run errorDetails method
感谢您的帮助,如何正确选择要输入的CSS标记。谢谢!
答案 0 :(得分:1)
除法律规定外,它还可以与remDr$findElement(using = "id", value = "login_field")
一起使用。因此,using = "id"
而非using = "css"
答案 1 :(得分:-1)
要将字符序列发送到网页https://github.com/login
上的用户名或电子邮件地址字段,您需要引入 WebDriverWait 并不能使用以下CSS_SELECTOR
:
input.form-control.input-block#login_field
一个 Python 示例:
driver.get("https://github.com/login")
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.form-control.input-block#login_field"))).send_keys('ulima2_')
浏览器快照: