Я пытаюсь получить идентификатор и сохранить его как переменную со следующим кодом:/
но я получил это сообщение об ошибке:
хранить значение на xpath=(//div[@class[starts-with(.,'commentItem')]]/@id)[1] со значением Ошибка идентификатора: 11:54:55 Результат выражения xpath "(//div[@class[starts-with(.,'commentItem')]]/@id)[1]" это: [объект Аттр]. Это должен быть элемент.
Я попробовал это выражение xpath в консоли, и оно работает, но получить этот идентификатор здесь невозможно.
@Pramesh XPath действителен. ОП заявил в своем вопросе, что он использовал его в консоли, и это сработало... не вернуло ошибку. В сообщениях об ошибках также четко указано это.
Вы пробовали читать документацию? атрибут магазина
@id выбирает атрибут.... значение хранилища ожидает веб-элемент.
Привет, я попробовал, но теперь у меня возникла ошибка: storeAttribute on xpath=(//div[starts-with(@class, 'commentItem')]/@id)[1] со значением Id Ошибка: 08:51 :22 Невозможно найти элемент с выражением xpath (//div[starts-with(@class, 'commentItem')]/ из-за следующей ошибки: SyntaxError: Document.evaluate: выражение не является допустимым выражением, которое странно, потому что когда я попробовал выражение xpath в консоли, оно дало мне идентификатор, который я хочу извлечь: $x("(//div[starts-with(@class, 'commentItem')]/@id)[1]" ) Массив [ id = "C78" ]
вы можете попробовать //div[starts-with(@class, 'commentItem')][1]/@id (не уверен, что @id будет работать с массивом, поэтому здесь следует использовать одну ссылку на веб-элемент... как вы видите, что консоль возвращает массив, а не значение, поэтому она должна игнорировать часть xpath?)
Я попробовал ваше решение, но получил ту же ошибку :(





Проблема, с которой вы столкнулись, связана с тем, что команда storeValue в Selenium IDE предназначена для извлечения значения атрибута из элемента HTML, а не из самого атрибута.
В вашем случае вы пытаетесь извлечь атрибут id из элемента div. Используемое вами выражение XPath на самом деле возвращает сам атрибут id, а не элемент HTML, поэтому вы видите сообщение об ошибке.
Чтобы это исправить, вам нужно использовать команду storeAttribute вместо storeValue. Команда storeAttribute предназначена для извлечения значения атрибута из элемента HTML.
Вот как вы можете изменить свою команду:
Команда: storeAttribute
Цель: xpath=(//div[starts-with(@class, 'commentItem')]/@id)[1]
Значение: идентификатор
Эта команда сохранит значение атрибута id первого элемента div с классом, который начинается с commentItem, в переменной Id.
Привет, я попробовал, но теперь у меня возникла ошибка: storeAttribute on xpath=(//div[starts-with(@class, 'commentItem')]/@id)[1] со значением Id Ошибка: 08:51 :22 Невозможно найти элемент с выражением xpath (//div[starts-with(@class, 'commentItem')]/ из-за следующей ошибки: SyntaxError: Document.evaluate: выражение не является допустимым выражением.
что странно, потому что когда я попробовал выражение xpath в консоли, оно дало мне идентификатор, который я хочу извлечь: $x("(//div[starts-with(@class, 'commentItem')]/@id)[1 ]") Массив [ id = "C78" ]
Разве это не отвечает на ваш вопрос?
не совсем так, как я пытаюсь получить это значение идентификатора, используя этот xpath (//div[starts-with(@class, 'commentItem')]/@id)[1] который отлично работает в консоли, но используя это же выражение xpath в Selenium IDE, я получил следующую ошибку: storeAttribute on xpath=(//div[starts-with(@class, 'commentItem')]/@id)[1] со значением Id Ошибка: 08:51 :22 Невозможно найти элемент с выражением xpath (//div[starts-with(@class, 'commentItem')]/ из-за следующей ошибки: SyntaxError: Document.evaluate: выражение не является допустимым выражением.
Вы получаете эту ошибку, потому что это недействительный локатор xpath. Вы можете просмотреть несколько примеров, чтобы узнать, как правильно использовать xpath для поиска веб-элементов. Если возможно, поделитесь своим кодом (или его частью), чтобы другие могли помочь.