Найти правильные теги CSS для r-селена - PullRequest
0 голосов
/ 24 сентября 2018

Я использовал этот учебник, чтобы узнать о 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 для входа.Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Чтобы отправить последовательность символов в поле Имя пользователя или адрес электронной почты на веб-странице https://github.com/login, вам нужно вызвать WebDriverWait и не использовать следующее CSS_SELECTOR:

input.form-control.input-block#login_field

A 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_')

Снимок браузера:

Github_Login

0 голосов
/ 24 сентября 2018

Помимо юридического материала, он, вероятно, работает с remDr$findElement(using = "id", value = "login_field").Так using = "id" вместо using = "css"

...