web-driver.ElementSet
クラス複数の要素を制御するためのクラスです。
以下のモジュールのメソッドを持ちます:
web-driver.Searchable
: 要素検索関連のメソッドを提供します。上述のモジュールのメソッドを使えます。
find_elements(strategy, finder) -> web-driver.ElementSet
複数の要素をいくつかの検索方法で見つけます。
しかし、通常はこのメソッドの代わりにweb-driver.Searchable
を使うほうが良いです。
strategy
: 要素を検索する方法を指定します。引数を以下のように設定できます。
css selector
: CSSセレクターを使って要素を検索します。link text
: Link text selectorを使って要素を検索します。partical link text
: Partical link text selectorを使って要素を検索します。tag name
: Tag名を使って要素を検索します。xpath
: XPath使って要素を検索します。finder
: 検索キーワードを指定します。
要素をweb-driver.ElementSet
として返します。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/"
driver:start_session(function(session)
session:navigate_to(URL)
local body = session:css_select('body')
local elements = body:find_elements("css selector", 'p')
for _,v in pairs(elements:texts()) do
print(v)
-- Hello 1
-- Hello 2
-- Hello 3
end
end)
text() -> string
このメソッドは、各要素のテキストを連結したテキストを1つの文字列として返します。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/"
driver:start_session(function(session)
session:navigate_to(URL)
local body = session:css_select('body')
local elements = body:find_elements("css selector", 'p')
print(elements:text())
-- Hello 1Hello 2Hello 3
end)
texts() -> {elements[1].text(), elements[2].text(), ...}
自分自身のテキストをテーブルとして返します。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/"
driver:start_session(function(session)
session:navigate_to(URL)
local body = session:css_select('body')
local elements = body:find_elements("css selector", 'p')
for _,v in pairs(elements:texts()) do
print(v)
-- Hello 1
-- Hello 2
-- Hello 3
end
end)
get_attribute(name) -> {elements[1]["name"], elements[2]["name"], ...}
name
: 属性名を指定します。
それぞれの要素の指定した属性の値を返します。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/"
driver:start_session(function(session)
session:navigate_to(URL)
local body = session:css_select('body')
local elements = body:find_elements("css selector", 'p')
for _,v in pairs(elements:get_attribute("id")) do
print(v)
-- p1
-- p2
-- p3
end
end)
insert(element_or_position, element) -> void
このメソッドは、指定したweb-driver.Element
をweb-driver.ElementSet
へ挿入します。
2番目の引数がnilの場合は、最初の引数が挿入される要素になります。
2番目の引数がnilでない場合は、最初の引数が挿入位置、2番目の引数が挿入される要素になります。
挿入位置を指定しない場合、要素は最後に追加されます。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/"
driver:start_session(function(session)
session:navigate_to(URL)
local p = session:css_select('p')
local checkbox = session:find_element("css selector", 'input[name=cheese]')
p:insert(1, checkbox)
print(p[1].name) -- cheese
end)
remove(element_or_position) -> web-driver.ElementSet
このメソッドは、web-driver.ElemetSet
から、指定したweb-driver.Element
を削除します。
引数の型が数値の場合は、引数は削除位置になります。
引数の型が数値でない場合は、引数は削除される要素になります。
削除した要素をweb-driver.ElementSet
として返します。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/"
driver:start_session(function(session)
session:navigate_to(URL)
local elements = session:css_select('p')
for _,v in pairs(elements:texts()) do
print(v)
-- Hello 1
-- Hello 2
-- Hello 3
end
elements:remove(2)
for _,v in pairs(elements:texts()) do
print(v)
-- Hello 1
-- Hello 3
end
end)
merge(element_set) -> web-driver.ElementSet
このメソッドは、指定したweb-driver.ElementSet
をマージします。
指定したweb-driver.ElemetSet
をマージした後のweb-driver.ElementSet
を返します。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/"
driver:start_session(function(session)
session:navigate_to(URL)
local p = session:css_select('p')
for _,v in pairs(p:texts()) do
print(v)
-- Hello 1
-- Hello 2
-- Hello 3
end
local label = session:css_select('label')
for _,v in pairs(label:texts()) do
print(v)
-- Cheese
-- Wine
end
merged_element = p:merge(label)
for _,v in pairs(merged_element:texts()) do
print(v)
-- Hello 1
-- Hello 2
-- Hello 3
-- Cheese
-- Wine
end
end)
click() -> void
要素をクリックします。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/button.html"
driver:start_session(function(session)
session:navigate_to(URL)
local elements = session:css_select('#announcement')
elements:click()
elements = session:css_select('a[name=announcement]')
local informations_summary = elements:texts()
for _, summary in ipairs(informations_summary) do
print(summary)
end
end)
send_keys(keys) -> void
要素に指定したキーを送信します。
keys
: 送信キーワードを文字列として指定します。
例:
local web_driver = require("web-driver")
local driver = web_driver.Firefox.new()
local URL =
"https://clear-code.gitlab.io/lua-web-driver/sample/"
driver:start_session(function(session)
session:navigate_to(URL)
local elements = session:css_select('input[name=name]')
elements:send_keys("This is test")
print(elements[1].value) -- "This is test"
end)
web-driver.Searchable
: 要素検索関連のメソッドを提供します。
web-driver.Element
: 要素を取り扱うためのクラスです。