Сохранить текст и вывод в текстовое поле (Ruby Selenium / Webdriver) - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу получить текст из элемента, а затем я хочу записать этот текст в другой элемент, который будет доступен в другом окне при переключении окна.

Selenium::WebDriver::Chrome.driver_path="C:/chromedriver.exe"
browser = Selenium::WebDriver.for :chrome
browser.get 'https://docs.google.com/spreadsheets/d/1BJMqNGK1e2j4VjS8K2kS5wloKpEaHu_GTxMl2KueUCM/edit?usp=sharing'
sleep 8 
browser.action.send_keys(:arrow_down).perform
browser.action.send_keys(:left_control, 'c').perform
sleep 1 
browser.execute_script("window.open('http://10.19.252.220:25780/PortalCDT/')")
browser.window_handles.each do |handle|
    browser.switch_to.window handle
  end
sleep 5
    browser.find_element(:id, "IdClient").click
    browser.find_element(:id, "IdClient").send_keys(:left_control, 'v')
    browser.find_element(:id, "ConfirmButton").click
    puts "Disp. Cash: " + browser.find_element(:id, "ctl00_ContentPlaceHolder1_ucInfoCliente_lblDispCash").text
    column4 = browser.find_element(:id, "ctl00_ContentPlaceHolder1_ucInfoCliente_lblDispCash").text
    puts "-------------------------------------"
    sleep 1
     browser.window_handles.each do |handle|
        browser.switch_to.window handle
        sleep 1
        browser.action.send_keys(:arrow_right).perform
        browser.action.send_keys("Id Here").perform
        browser.action.send_keys(:arrow_right).perform
        browser.action.send_keys(:colunmn4).text
    browser.window_handles.each do |handle|
        browser.switch_to.window handle
        sleep 1
        browser.action.send_keys(:arrow_down).perform
        browser.action.send_keys(:left_control, 'c').perform
    end
    browser.window_handles.each do |handle|
        browser.switch_to.window handle
    end

попытался сохранить текст в переменную column4и затем я хочу записать его в текстовое поле, которое является другим окном.

HTML-код для копирования текста

<span id="ctl00_ContentPlaceHolder1_ucInfoCliente_lblDispRotativo">2870,14</span>

Спасибо!

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Правильный ответ:

value = browser.find_element('span#ctl00_ContentPlaceHolder1_ucInfoClient_lblDispCash')
value_text = value.text
text_area = browser.find_element('textbox#whatver_id')
text_area.send_keys(value_text, :enter).perform
0 голосов
/ 02 февраля 2019

В вашей программе много ошибок.

1) Чтобы передать, control + c, вы должны передать [:control,"c"], а не (:control, 'c'). Разница в том, что ваш код пройдет контрольи c последовательно, но код [:control,'c'] будет удерживать клавишу управления, пока она нажимает c.Видите ли вы разницу?

2) Почему вы открываете новую вкладку, когда намереваетесь открыть другую ссылку?Откройте другой браузер, в котором вам не понадобится ваш сдвиг в Window.

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

require 'selenium-webdriver'    
driver=Selenium::WebDriver.for :chrome    
driver.navigate.to 'https://docs.google.com/spreadsheets/d/1FMOaVoDF3PsXCgqiEQgYWe8CCO7PcDwsqHpEGT2no3I/edit?usp=sharing'    
driver.action.send_keys(:arrow_down).perform    
driver.action.send_keys([:control, 'c']).perform    
driver1=Selenium::WebDriver.for :chrome    
driver1.navigate.to("https://www.google.com/")    
driver1.action.send_keys([:control, 'v']).perform
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...