你知道你可以搜索網頁的源代碼是這樣的:watir-webdriver有一個「通配符標籤」嗎?
browser.div(:text => /foo/)
你怎麼可以做這樣的事情:
browser.wildcard(:text => /foo/)
我在尋找這個功能,因爲我訪問頁1具有
<tag1>foo</tag1>
但2頁有
<tag2>foo</tag2>
並且foo確實發生在兩頁的頁面中的其他地方。
你知道你可以搜索網頁的源代碼是這樣的:watir-webdriver有一個「通配符標籤」嗎?
browser.div(:text => /foo/)
你怎麼可以做這樣的事情:
browser.wildcard(:text => /foo/)
我在尋找這個功能,因爲我訪問頁1具有
<tag1>foo</tag1>
但2頁有
<tag2>foo</tag2>
並且foo確實發生在兩頁的頁面中的其他地方。
元素會發現匹配,不管標籤名稱的任何元素:
browser.element(text: /foo/)
賈斯汀使得在評論一個偉大的點。將#element
與正則表達式值配對將導致返回html
元素。
如果你想在最後一個標記引用它(注意,這可能是一個令人望而卻步非高性能選項):
browser.element(text: /foo/, index: -1)
如果沒有嵌套跨度的任何問題,這將是略快選項:
b.element(text: /foo/, tag_name: /span|td/)
在一般情況下,這是很要好得多,以避免使用正則表達式匹配器,當你不*必須要使用它們。
我認爲你必須小心這一點。如果頁面上有「foo」,它將始終返回'html'元素,這是包含文本的第一個元素。如果標籤文本已知爲「foo」,則browser.element(text:'foo')'將更安全。 –
xpath怎麼樣?
browser.element(xpath: "//tag1[contains(text(),'foo')]")
如果您在網頁上,你甚至可以只有一個標籤1:
browser.element(xpath: "//tag1")
出於好奇,什麼是''和''? –
orde
''和'',但我找到了一個不需要'element'的工作。 – Forwarding
@orde,出於好奇,你爲什麼要問? – Forwarding