簡體   English   中英

Ruby Watir獲取頁面的特定html元素

[英]Ruby Watir to get specific html element of a page

我已經嘗試過這個了:

puts browser.text

而且有效。 我想問問是否有可能僅顯示或打印特定元素或html標簽。 例如這個:

<button class="btn btn-add" data-role="add">Add New User</button>

有什么方法只能獲取此元素嗎? 不是整個頁面源。 我也嘗試

puts @browser.button(:class => "btn btn-add").html

錯誤是:

1) Error:
test_login(TC_Login):
Selenium::WebDriver::Error::JavascriptError: invalid 'in' operand a
    [remote server] http://sample.org/user/ line 68 > Function:18:in `G'
    [remote server] http://sample.org/user/ line 68 > Function:18:in `anonymous/</<'
    [remote server] http://sample.org/user/ line 68 > Function:15:in `anonymous/<'
    [remote server] http://sample.org/user/ line 68 > Function:15:in `anonymous'
    [remote server] http://sample.org/user/:68:in `handleEvaluateEvent'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/http/common.rb:59:in `new'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/http/common.rb:59:in `create_response'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/http/default.rb:66:in `request'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:640:in `raw_execute'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:618:in `execute'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:339:in `executeScript'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/common/driver.rb:193:in `execute_script'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.11/lib/watir-webdriver/atoms.rb:20:in `execute_atom'
    c:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.11/lib/watir-webdriver/elements/element.rb:290:in `outer_html'
    excel.rb:277:in `test_login'

我不知道為什么安德魯·利弗(Andrew Leaf)的答案對您不起作用,這是應該使用的簡單正確的方法,您可以發帖引發的錯誤嗎? 但是您也可以嘗試以下操作:

browser.execute_script('return document.getElementsByClassName("btn-add")[0];').html
@browser.button(:class => "btn btn-add").html

那應該顯示元素的HTML。

browser.button(:class => "btn btn-add")

可以使用inner_html方法顯示頁面上元素的基礎HTML代碼

放置browser.button(:class =>“ btn btn-add”)。inner_html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM