checkbox:使用check和is_checked方法代碼 def test_click_checkbox_with_ischecked(self):
sel = self.selenium
sel.open(self.TEST_PAGE_URL)
sel.wait_for_page_to_load(self.MAX_WAIT_IN_MS)
sel.check("id=checkBoxInput")
self.assertTrue(sel.is_checked("id=checkBoxInput"))
使用click和get_value方法
代碼 def test_checkbox_with_getvalue(self):
sel = self.selenium
sel.open(self.TEST_PAGE_URL)
sel.wait_for_page_to_load(self.MAX_WAIT_IN_MS)
self.assertEquals("off", sel.get_value("id=checkBoxInput"))
sel.click("id=checkBoxInput")
self.assertEquals("on", sel.get_value("id=checkBoxInput"))
Radio Button
處理button的時候,在locator中,需要同時提供name(input name)以及value(radio button的value)
代碼 def test_clickradiobutton_use_checkandischeck(self):
sel = self.selenium
sel.open(self.TEST_PAGE_URL)
sel.wait_for_page_to_load(self.MAX_WAIT_IN_MS)
self.assertFalse(sel.is_checked("name=radioButton value=a"))
self.assertFalse(sel.is_checked("name=radioButton value=b"))
sel.check("name=radioButton value=b")
self.assertTrue(sel.is_checked("name=radioButton value=b"))
self.assertFalse(sel.is_checked("name=radioButton value=a"))
我們也可以使用click和get_value方法,不過要注意的是單獨的button有兩個值:"on"和"off"
代碼 def test_clickradiobutton_use_clickabdgetvalue(self):
sel = self.selenium
sel.open(self.TEST_PAGE_URL)
sel.wait_for_page_to_load(self.MAX_WAIT_IN_MS)
self.assertEquals("off", sel.get_value("name=radioButton"))
self.assertEquals("off", sel.get_value("name=radioButton value=a"))
self.assertEquals("off", sel.get_value("name=radioButton value=b"))
sel.click("name=radioButton value=b")
self.assertEquals("off", sel.get_value("name=radioButton"))
self.assertEquals("off", sel.get_value("name=radioButton value=a"))
self.assertEquals("on", sel.get_value("name=radioButton value=b"))
Select
Select比一般的input有點複雜,首先,必須先確定select元素,接著要確定select裡面的選項。select裡面的option可以用ids和values來確定。所以我們必須用locator來確定select本身以及我們感興趣的選項。選項的locator可以是選項元素的id,值,標籤或者在select裡的index。
當選擇之後,我們可以使用get_value,get_selected_value, get_selected_label等方法
代碼 def test_selectfromdropdown_novaluesinselect_uselabeloptionlocator(self):
sel =self.selenium
sel.open(self.TEST_PAGE_URL)
sel.wait_for_page_to_load(self.MAX_WAIT_IN_MS)
self.assertEquals("option one", sel.get_selected_label("id=selectWithLabelsOnly"))
self.assertEquals("option one", sel.get_value("id=selectWithLabelsOnly"))
sel.select("id=selectWithLabelsOnly", "label=option two")
self.assertTrue(sel.is_something_selected("id=selectWithLabelsOnly"))
self.assertEquals("option two", sel.get_selected_label("id=selectWithLabelsOnly"))
self.assertEquals("option two", sel.get_value("id=selectWithLabelsOnly"))
使用index的版本
代碼 def test_selectfromdropdown_novaluesinselect_useindexoptionlocator(self):
sel =self.selenium
sel.open(self.TEST_PAGE_URL)
sel.wait_for_page_to_load(self.MAX_WAIT_IN_MS)
self.assertEquals("option one", sel.get_selected_label("id=selectWithLabelsOnly"))
self.assertEquals("option one", sel.get_value("id=selectWithLabelsOnly"))
sel.select("id=selectWithLabelsOnly", "index=1")
self.assertTrue(sel.is_something_selected("id=selectWithLabelsOnly"))
self.assertEquals("option two", sel.get_selected_label("id=selectWithLabelsOnly"))
self.assertEquals("option two", sel.get_value("id=selectWithLabelsOnly"))
處理帶值的select
代碼 def test_selectfromdropdown_labelsandvaluesinselect_uselabellocator(self):
sel = self.selenium
sel.open(self.TEST_PAGE_URL)
self.assertTrue(sel.is_something_selected("id=selectWithLabelsAndValues"))
selectedLabel = sel.get_selected_label("id=selectWithLabelsAndValues")
self.assertEquals("option one", selectedLabel)
self.assertEquals("1", sel.get_value("id=selectWithLabelsAndValues"))
self.assertEquals("1", sel.get_selected_value("id=selectWithLabelsAndValues"))
sel.select("id=selectWithLabelsAndValues", "label=option two")
self.assertTrue(sel.is_something_selected("id=selectWithLabelsAndValues"))
selectedLabel = sel.get_selected_label("id=selectWithLabelsAndValues")
self.assertEquals("option two", selectedLabel)
self.assertEquals("2", sel.get_value("id=selectWithLabelsAndValues"))
self.assertEquals("2", sel.get_selected_value("id=selectWithLabelsAndValues"))
Alert Box
主要使用get_alert方法處理alert box,這個方法和點OK 按鈕有相同的效果,同時還返回alert box上的文本。
代碼