Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
242 lines (195 sloc) 10.1 KB
# -*- coding: utf-8 -*-
# Copyright 2012 splinter authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
from __future__ import with_statement
from splinter.driver import ElementAPI
from splinter.element_list import ElementList
class FindElementsTest(object):
def test_finding_by_css(self):
"should find by css"
value = self.browser.find_by_css('h1').first.value
self.assertEqual('Example Header', value)
def test_finding_by_xpath(self):
"should find elements by xpath"
value = self.browser.find_by_xpath('//h1').first.value
self.assertEqual('Example Header', value)
def test_finding_by_tag(self):
"should find elements by tag"
value = self.browser.find_by_tag('h1').first.value
self.assertEqual('Example Header', value)
def test_finding_by_value(self):
"should find elements by value"
value = self.browser.find_by_value('M').first.value
id = self.browser.find_by_id('gender-m')
self.assertEqual(id.first.value ,value)
def test_finding_by_id(self):
"should find elements by id"
value = self.browser.find_by_id("firstheader").first.value
self.assertEqual('Example Header', value)
def test_finding_by_name(self):
"should find elements by name"
value = self.browser.find_by_name('query').first.value
self.assertEqual('default value', value)
def test_finding_all_elements_by_css(self):
"should find elements by css"
value = self.browser.find_by_css('h1')[0].value
self.assertEqual('Example Header', value)
def test_finding_all_elements_by_xpath(self):
"should find elements by xpath"
value = self.browser.find_by_xpath('//h1')[0].value
self.assertEqual('Example Header', value)
def test_finding_all_elements_by_tag(self):
"should find elements by tag"
value = self.browser.find_by_tag('h1')[0].value
self.assertEqual('Example Header', value)
def test_finding_all_elements_by_id(self):
"should find elements by id"
value = self.browser.find_by_id("firstheader")[0].value
self.assertEqual('Example Header', value)
def test_finding_all_elements_by_name(self):
"should find elements by name"
value = self.browser.find_by_name('query')[0].value
self.assertEqual('default value', value)
def test_finding_all_links_by_text(self):
"should find links by text"
link = self.browser.find_link_by_text('Link for Example.com')[0]
self.assertEqual('http://example.com/', link['href'])
def test_finding_all_links_by_href(self):
"should find links by href"
link = self.browser.find_link_by_href('http://example.com/')[0]
self.assertEqual('http://example.com/', link['href'])
def test_finding_all_links_by_partial_href(self):
"should find links by partial href"
link = self.browser.find_link_by_partial_href('example.c')[0]
self.assertEqual('http://example.com/', link['href'])
def test_finding_all_links_by_partial_text(self):
"should find links by partial text"
link = self.browser.find_link_by_partial_text('FOO')[0]
self.assertEqual('http://localhost:5000/foo', link['href'])
def test_finding_last_element_by_css(self):
"should find last element by css"
value = self.browser.find_by_css('h1').last.value
self.assertEqual('Example Last Header', value)
def test_finding_last_element_by_xpath(self):
"should find last element by xpath"
value = self.browser.find_by_xpath('//h1').last.value
self.assertEqual('Example Last Header', value)
def test_finding_last_element_by_tag(self):
"should find last element by tag"
value = self.browser.find_by_tag('h1').last.value
self.assertEqual('Example Last Header', value)
def test_finding_last_element_by_id(self):
"should find last element by id"
value = self.browser.find_by_id("firstheader").last.value
self.assertEqual('Example Header', value)
def test_last_element_is_same_than_first_element_in_find_by_id(self):
"should first element is same than last element in find by id"
#a html page have contain one element by id
first = self.browser.find_by_id("firstheader").first.value
last = self.browser.find_by_id("firstheader").last.value
self.assertEqual(first, last)
def test_finding_last_element_by_name(self):
"should find last element by name"
value = self.browser.find_by_name('query').last.value
self.assertEqual('default last value', value)
def test_finding_last_link_by_text(self):
"should find last link by text"
link = self.browser.find_link_by_text('Link for Example.com').last
self.assertEqual('http://example.com/last', link['href'])
def test_finding_last_link_by_href(self):
"should find last link by href"
link = self.browser.find_link_by_href('http://example.com/').last
self.assertEqual('Link for last Example.com', link.text)
def test_finding_link_by_partial_href(self):
"should find links by partial href"
link = self.browser.find_link_by_partial_href('example.c').last
self.assertEqual('Link for last Example.com', link.text)
def test_finding_last_link_by_partial_text(self):
"should find last link by partial text"
link = self.browser.find_link_by_partial_text('FOO').last
self.assertEqual('A wordier (and last) link to FOO', link.text)
def test_finding_element_by_css_using_slice(self):
"should find element by css using slice"
value = self.browser.find_by_css('h1')[-1].value
self.assertEqual('Example Last Header', value)
def test_finding_element_by_xpath_using_slice(self):
"should find element by xpath using slice"
value = self.browser.find_by_xpath('//h1')[-1].value
self.assertEqual('Example Last Header', value)
def test_finding_element_by_tag_using_slice(self):
"should find element by tag using slice"
value = self.browser.find_by_tag('h1')[-1].value
self.assertEqual('Example Last Header', value)
def test_finding_element_by_id_using_slice(self):
"should find element by id using slice"
value = self.browser.find_by_id("firstheader")[-1].value
self.assertEqual('Example Header', value)
def test_all_elements_is_same_than_first_element_in_find_by_id(self):
"should all elements is same than first element in find by id"
#a html page have contain one element by id
first = self.browser.find_by_id("firstheader").first.value
some = self.browser.find_by_id("firstheader")[-1].value
self.assertEqual(first, some)
def test_finding_element_by_name_using_slice(self):
"should find element by name using slice"
value = self.browser.find_by_name('query')[-1].value
self.assertEqual('default last value', value)
def test_finding_link_by_text_using_slice(self):
"should find link by text using slice"
link = self.browser.find_link_by_text('Link for Example.com')[-1]
self.assertEqual('http://example.com/last', link['href'])
def test_finding_link_by_href_using_slice(self):
"should find link by href using slice"
link = self.browser.find_link_by_href('http://example.com/')[-1]
self.assertEqual('Link for last Example.com', link.text)
def test_finding_links_by_text(self):
"should find links by text"
link = self.browser.find_link_by_text('Link for Example.com').first
self.assertEqual('http://example.com/', link['href'])
def test_finding_links_by_href(self):
"should find links by href"
link = self.browser.find_link_by_href('http://example.com/').first
self.assertEqual('http://example.com/', link['href'])
def test_find_by_css_in_element_context(self):
"should find elements by css in element context and should return splinter driver element"
elements = self.browser.find_by_css("#inside")
decendent = elements[0].find_by_css('h2')
self.assertEqual(decendent.first.text.strip(), 'inside')
assert isinstance(decendent, ElementList)
assert isinstance(decendent[0], ElementAPI)
def test_find_by_xpath_in_element_context(self):
"should find elements by xpath in element context"
elements = self.browser.find_by_css("#inside")
decendent = elements[0].find_by_xpath("//h2")
self.assertEqual(decendent.first.text.strip(), 'inside')
assert isinstance(decendent, ElementList)
assert isinstance(decendent[0], ElementAPI)
def test_find_by_name_in_element_context(self):
"should find elements by name in element context"
elements = self.browser.find_by_css("#inside")
decendent = elements[0].find_by_name("upload")
self.assertEqual(len(decendent), 1)
assert isinstance(decendent, ElementList)
assert isinstance(decendent[0], ElementAPI)
def test_find_by_tag_in_element_context(self):
"should find elements by tag in element context"
elements = self.browser.find_by_css("#inside")
decendent = elements[0].find_by_tag("input")
self.assertEqual(len(decendent), 1)
assert isinstance(decendent, ElementList)
assert isinstance(decendent[0], ElementAPI)
def test_find_by_id_in_element_context(self):
"should find elements by id in element context"
elements = self.browser.find_by_css("#inside")
decendent = elements[0].find_by_id("visible")
self.assertEqual(len(decendent), 1)
assert isinstance(decendent, ElementList)
assert isinstance(decendent[0], ElementAPI)
def test_find_by_value_in_element_context(self):
"should find elements by value in element context"
elements = self.browser.find_by_css("#inside")
decendent = elements[0].find_by_value("crazy diamond")
self.assertEqual(len(decendent), 1)
assert isinstance(decendent, ElementList)
assert isinstance(decendent[0], ElementAPI)
Something went wrong with that request. Please try again.