SendKeys добавляет новый текст к старому тексту, так как мне заменить существующий текст

#google-chrome #selenium-webdriver #sendkeys

#google-chrome #selenium-webdriver #sendkeys

Вопрос:

Я никоим образом не программист, я просто пытаюсь автоматизировать отчет Chrome в моей книге Excel.

Я использую VBA Selenium, и мне нужно отправить дату в текстовое поле. Я использовал FindElementByXPath и FindElementByName , и оба работают.

 obj.FindElementByName("filter_date_start_sold").Click – works
obj.FindElementByName("filter_date_start_sold").Clear – works
obj.FindElementByName("filter_date_start_sold").SendKeys ("01/08/2018"). 
  

Это работает, но добавляет новую дату к дате, которая уже была указана в текстовом поле, поэтому она становится 01/08/202001/08/2018

Я пытался использовать .SendKeys (ключи.Backspace) но функция обратного пробела ничего не сделает.

 Sub ChromeAutoSYD()

Dim obj As New WebDriver
obj.Start "chrome", ""

Set IE = CreateObject("InternetExplorer.Application")

Obj.Get "I am sorry  I cannot list the actual URL as it is a company DB Site"

'The Sheet reference is my login details and this all works well
obj.FindElementByName("username").SendKeys (ThisWorkbook.Sheets("Sheet3").Range("D20").Value)
obj.FindElementByName("password").SendKeys (ThisWorkbook.Sheets("Sheet3").Range("D21").Value)
obj.FindElementByXPath("/html/body/div/div/div/div/div/div/div[2]/form/div[3]/button").Click

obj.FindElementByXPath("/html/body/div[1]/div/div[2]/div/div[2]/div[3]/div[2]/div/div/input").SendKeys("01082018").Value

 obj.FindElementByXPath("/html/body/div[1]/div/div[2]/div/div[2]/div[3]/div[4]/button").Click
 
  Application.Wait (Now   TimeValue("0:00:05"))

End Sub
  

Комментарии:

1. Пожалуйста, опубликуйте какой-нибудь код, чтобы я мог протестировать

2. Привет Mike67, спасибо, что посмотрели на это, не уверен, как мне следует размещать код, но я попробую.

3. Просто отредактируйте свой пост и добавьте код к тексту. Используйте кнопку {} для форматирования текста в виде кода, чтобы он выглядел лучше.

4. вы пробовали с помощью метода clear() сначала очистить, а затем отправить ключи в поле?

5. Привет, Джастин, да, я сделал, и метод очистки также сработал, но когда я отправляю новый текст даты, поле, похоже, снова заполняется первым, а новый текст добавляется последним. Я думаю, что в текстовом поле этой страницы может быть какая-то форма управления, которая заставляет sit заполняться каждый раз, когда на нем появляется фокус.