RSelenium выбирает xpath с динамическим идентификатором - PullRequest
0 голосов
/ 25 июня 2018

Я работаю с пакетом RSelenium и столкнулся с ошибкой, которую я не могу найти способ обойти.Я пытаюсь выбрать элемент из таблицы на веб-странице и щелкнуть по нему, что я обычно делаю с

remdr$findElment('xpath',*insertxpathhere*)$clickElement()

Где remdr - удаленный сеанс.Проблема, с которой я сталкиваюсь, заключается в том, что 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-значное число меняется при каждой загрузке страницы и выполняетПохоже, что у меня нет заметного шаблона, который позволил бы мне создать кучу фиктивных путей и проверить, работает ли он.Я рассмотрел использование элемента подстановки (например, // * [@ id = "libraryPicker- wildcardelement ), но не могу найти способ сделать это в R. Селектор css для этого элемента также динамический в том жеway.

Мне нужен какой-то способ идентифицировать этот элемент каждый раз, когда я запускаю скрипт, несмотря на то, что он каждый раз меняет свой идентификатор xpath.

Кто-нибудь сможет мне помочь с этим? Спасибо!

1 Ответ

0 голосов
/ 25 июня 2018

В соответствии с вашими испытаниями кода для идентификации элемента вы можете использовать следующее xpath :

//*[starts-with(@id,'libraryPicker')][contains(@id,'datasets')]/div[2]/div/table/tbody/tr[5]/td[2]
...