[Selenium][Notes]Day3:2️⃣操作checkbox/radiobutton

147 阅读1分钟

Background:

学习Checkbox和Radiobutton

目标:

  • checkbox间的select/unselect
  • radiobutton间切换

完整Code:

HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="javascript:alert('Hello')">
    <header>Hobby</header>
    swimming: <input type="checkbox" name="swimming" value="swimming"><br>
    reading: <input type="checkbox" name="reading" value="reading"><br>
<hr>
    <header>Gender</header>
    gender: <input type="radio" name="gender" value="male"><br>
            <input type="radio" name="gender" value="female"><br>

    <input type="submit" value="Login" id="Login">

</form>
</body>
</html>
Python:
from selenium import webdriver
from time import sleep
import os

class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        path = os.path.dirname(os.path.abspath(__file__))  # 当前文件所在目录路径
        # file协议拼接
        file_path = 'file:///' + path + '/forms2.html'
        # 访问本地html
        self.driver.get(file_path)

    def test_checkbox(self):
        swimming = self.driver.find_element_by_name('swimming')
        reading = self.driver.find_element_by_name('reading')
        # 判断是否选中,没有选中就click
        if not swimming.is_selected():
            swimming.click()
        if not reading.is_selected():
            reading.click()
        sleep(2)
        # 取消选中
        swimming.click()
        sleep(2)

    def test_radio(self):
        lst = self.driver.find_elements_by_name('gender')
        # 选择选项中的第一个
        lst[0].click()
        sleep(2)
        # 选择选项中的第二个
        lst[1].click()
        sleep(2)

    def test_submit(self):
        # 确认提交
        self.driver.find_element_by_id('Login').click()
        sleep(2)
        # 关掉弹框
        self.driver.switch_to.alert.accept()
        sleep(2)
        self.driver.quit()
        print('Pass')

if __name__ == '__main__':
    case = TestCase()
    case.test_checkbox()
    case.test_radio()
    case.test_submit()