Selenium: Fill in Input Tags

使用Selenium测试时,需要模拟很多对网页的操作。我整理了一些用到过的。

输入框里输入值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import unittest

class NewVisitorTest(unittest.TestCase):

def setUp(self):
self.browser = webdriver.Firefox()

def tearDown(self):
self.browser.quit()

def test_can_start_a_list_and_retrieve_it_later(self):
self.browser.get('http://localhost:8000')

inputbox = self.browser.find_element_by_id('id_new_item')
self.assertEqual(
inputbox.get_attribute('placeholder'),
'Enter a to-do item'
)

inputbox.send_keys('Buy peacock feathers') # 输入字符串

inputbox.send_keys(Keys.ENTER) # 按下回车
time.sleep(1)

table = self.browser.find_element_by_id('id_list_table')
rows = table.find_elements_by_tag_name('tr')
self.assertTrue(
any(row.text == '1: Buy peacock feathers' for row in rows)
)

获取alert对话框里的内容

发送回车后之后,sleep1秒(取决于网速,一般1秒足矣),用下列代码判断是否能取得alert,并且判断alert里的文字。

1
2
alert = self.browser.switch_to.alert
self.assertEqual('验证码不正确或已过期,请重新尝试', alert.text)

0%