#javascript #node.js #selenium #selenium-chromedriver
#javascript #node.js #селен #selenium-chromedriver
Вопрос:
Я пытаюсь использовать Selenium для получения текстовых элементов с веб-сайтов с помощью Node.
В качестве примера я использую URL: https://www.ebuyer.com/874785-exdisplay-gigabyte-geforce-rtx-2080-ti-gaming-oc-11gb-graphics-card-ebr2-gv-n208tgaming-oc-11gc и XPath /html/body/section/div[1]/div[3]/div[1]/div[3]/form/button
Я вижу в плагине выбора XPaath, что это приводит к «Добавить в корзину», однако приведенный ниже код регистрирует пустую строку. Есть идеи, что я делаю не так?
Я пробовал это с другим элементом на странице, который работает, поэтому я предполагаю, что это кнопка?
const selenium = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const chromedriver = require('chromedriver');
chrome.setDefaultService(new chrome.ServiceBuilder(chromedriver.path).build());
const driver = new selenium.Builder()
.withCapabilities(selenium.Capabilities.chrome())
.build();
await driver.get(url);
await delay(1000);
const value = await driver.findElement(web.By.xpath(xPath)).getText();
console.log(value)
Ответ №1:
Используйте следующее xpath
, чтобы идентифицировать кнопку.
//div[@class='purchase-info']//input[@value='Add to Basket']
Обновить:
const value = await driver.findElement(web.By.xpath("//div[@class='purchase-info']//input[@value='Add to Basket']")).getAttribute("value");
console.log(value)
Комментарии:
1. У меня все та же проблема. Запрос завершается успешно, но значение пустое
2. @K20GH: чтобы получить значение
getText()
, здесь не сработает, вы должны использоватьgetAttribute("value")
3. @K20GH: Пожалуйста, проверьте обновленный ответ и сообщите мне статус?