2013-07-05 90 views
1

我正在用紅寶石selenium webdriver。如何使用硒webdriver使用'CTRL A'選擇文本字段中的文本?

clc = WAIT.until { driver.find_element(:id, 'embed-showembedcode') } 
    driver.action.key_down(:control).click(clc).send_keys("a").key_up(:control).perform 

這個我使用的是什麼,但我得到一個錯誤..

{"testcase":"load: should check embed code","message":"erro 
r - Cannot perform native interaction: Could not load native events component. \ 
n [\"[remote server] file:///C:/Users/nachiket/AppData/Local/Temp/webdriver-prof 
ile20130705-5880-g873k8/extensions/[email protected]/components/driver_com 
ponent.js:8738:in `generateErrorForNativeEvents'\", \"[remote server] file:///C: 
/Users/nachiket/AppData/Local/Temp/webdriver-profile20130705-5880-g873k8/extensi 
ons/[email protected]/components/driver_component.js:8771:in `FirefoxDrive 
+0

你想要得到的文本由所需的元素呢? –

+0

是的,這是一個文本框 –

回答

2

赫姆再看看Selenium::WebDriver::Element#text

所以使用:

elem = wait.until { 
element = driver.find_element(:id, 'embed-showembedcode') 
element if element.displayed? 
} 
puts elem.text # => target text will be printed here 

我們修復錯誤,我建議你總是做一些機器表示測試,如下所示。它並不需要的Selenium::WebDriver::Keys提到的映射將是很好的在你的機器的工作:

require "selenium-webdriver" 

puts Selenium::WebDriver::Keys::KEYS 
# => {:null=>"\uE000", :cancel=>"\uE001", :help=>"\uE002", :backspace=>"\uE003", :tab=>"\uE004", 
# :clear=>"\uE005", :return=>"\uE006",:enter=>"\uE007", :shift=>"\uE008", 
# :left_shift=>"\uE008", :control=>"\uE009",.. } 

elem = wait.until { 
element = driver.find_element(:id, 'embed-showembedcode') 
element if element.displayed? 
} 
driver.action.key_down("\uE009").click(elem).send_keys("a").key_up("\uE009").perform 
+1

@Priti非常感謝你的工作:) :) –

+0

@ user1177636嗯..你是對的。我已經向OP提供了我的建議。 :) –

+0

@ user1177636上帝保佑你..:D可能我抓住了OP的痛苦,雖然他無法表達..在第一個地方.. :)) –

相關問題