VBA-Wedriver-Selenium-Xpath - изменить значение класса - нажмите кнопку -Excel - PullRequest
0 голосов
/ 20 июня 2020

Я открываю веб-сайт с помощью Chrome Webdriver. Я хотел изменить значение на 12 вместо 10 в поле

HTML Код

<div class="input-currency input-colors">
    <input type="tel" autocomplete="off" class="input-currency__input" data-test="deal-amount-input" maxlength="9" value="10" />
    <div class="input-currency__values"><span class="input-currency__value">10</span>&nbsp;<span class="input-currency__sign psign">Đ</span></div>
</div>

Мои коды

Dim Bot As WebDriver
Dim posts As WebElements, post As WebElement
Set Bot = New WebDriver
Bot.Start "chrome"
Bot.Get "https://olymptrade.com/platform#"

Bot.FindElementsByXPath("//span[contains(@class,'input-currency__value')]").Values = 12
Bot.FindElementByClass("input-currency input-colors").Text

Также есть кнопка Купить с зеленым цветом, я хотел на нее нажать.

HTML Код

<div class="deal-buttons__item deal-buttons__item_up">
    <button data-test="deal-button-up" class="deal-buttons__button deal-buttons__button_up">
        <span>
            <span class="deal-buttons__text">80%</span>
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#FFF" fill-opacity="0.5" class="deal-buttons__svg deal-buttons__svg_arrow">
                <path d="M14.6 8l-8.3 8.3a1 1 0 0 0 1.4 1.4L16 9.4V17a1 1 0 0 0 2 0V7a1 1 0 0 0-1-1H7a1 1 0 1 0 0 2h7.6z"></path>
            </svg>
        </span>
    </button>
</div>

Мой код

Bot.FindElementsByXPath("//span[contains(@class,'deal-buttons__text ')]").Click
Bot.FindElementsByXPath("//button[contains(@class,'deal-buttons__button deal- buttons__button_up')]").Click

Я хотел изменить значение и нажмите кнопку «Купить» с помощью selenium webdriver

дайте мне подсказку моя ошибка

1 Ответ

1 голос
/ 20 июня 2020

FindElements возвращает коллекцию. Вам нужен один webElement, то есть один элемент этой коллекции. Вам необходимо определить соответствующий индекс и использовать его или, если необходимо первое совпадение, использовать методы, например, как показано ниже, которые являются единственными.

Bot.FindElementByCss(".input-currency input").SendKeys "12"   'though you may need to clear element first

Если необходимо сначала очистить, то:

With Bot.FindElementByCss(".input-currency input")
    .Clear
    .SendKeys "12" 
End With

Кнопка html не предоставляется вами, но вам снова нужен единственный метод или индекс. Предполагая, что сначала хотите, а xpath правильный:

Bot.FindElementByXPath("//span[contains(@class,'deal-buttons__text ')]").Click
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...