Página 1 de 1

Control + "v"

Enviado: Qui Jun 18, 2020 10:57 am
por sergio_lara
Olá!
Tenho um código (VBA + SeleniumBasic) para envio de email automatizado em que eu desejo digitar um Control + V, para colar um gráfico que está na área de transferência, porém não estou conseguindo. Já tentei o Sendkeys (keys.Control + "v") e o Sendkeys(keys.Control & "v"), mas não deu.

Alguém me ajuda a colar o conteúdo da área de transferência?

Re: Control + "v"

Enviado: Sex Jun 19, 2020 12:21 am
por dougpinto
Boa noite Sérgio,

Já tentou SendKeys "^v" ?

Re: Control + "v"

Enviado: Sex Jun 26, 2020 8:12 pm
por sergio_lara
Boa noite.

Com o Application.Sendkeys eu consigo, mas gostaria de usar o sendkeys do Selenium, senão eu preciso manter o navegador aberto naquela janela, sem usar a máquina. Se eu conseguisse usar o sendkeys do Selenium, eu poderia continuar usando o computador para outras tarefas. Mesmo assim, obrigado!

Re: Control + "v"

Enviado: Ter Ago 25, 2020 4:27 pm
por sergio_lara
Pessoal, depois de algum tempo quebrando o galho com Application.Sendkeys, eu finalmente consegui. Dá uma olhada num exemplo aí:

Código: Selecionar todos

Sub teste()
    Dim driver              As New Selenium.ChromeDriver
    Dim Keys                As New Selenium.Keys
    
    driver.Get ("http://www.editordetextos.com.br/")
    driver.Keyboard.KeyDown (Keys.Control)
    driver.Keyboard.SendKeys ("v")
    driver.Keyboard.KeyUp (Keys.Control)
    driver.Quit
End Sub

Re: Control + "v"

Enviado: Qua Ago 26, 2020 10:42 am
por RodrigoAraujo
Uso de outra forma:

ano = Worksheets("base").Range("C" & i).Value
driver.FindElementByXPath("/html/body/div[6]/div/div/div/div/ng-transclude/div/div[2]/div/article/div[1]/div/div/div/div[1]/div/input").SendKeys ano

Também usando o Chrome Driver

Re: Control + "v"

Enviado: Qua Ago 26, 2020 11:33 am
por sergio_lara
RodrigoAraujo escreveu: Qua Ago 26, 2020 10:42 am Uso de outra forma:

ano = Worksheets("base").Range("C" & i).Value
driver.FindElementByXPath("/html/body/div[6]/div/div/div/div/ng-transclude/div/div[2]/div/article/div[1]/div/div/div/div[1]/div/input").SendKeys ano

Também usando o Chrome Driver
Olá, Rodrigo. Para strings sua solução funciona e eu também uso assim, mas a intenção de usar o CONTROL + V é colar o que tem na área de transferência, o que em muitos casos, vai ser uma imagem ou um gráfico que, pelo que sei, não funciona com o SendKeys.

De forma análoga, tem diversas dúvidas, aqui mesmo no fórum de como fazer o CONTROL + A, por exemplo. Acredito que essa solução com o

Código: Selecionar todos

driver.Keyboard.KeyDown (Keys.Control)
também vai funcionar para diversas necessidades, diferentes da sua.

Abraço!