selenium HTML特殊元素处理

  • form表单

    新建一个form表单

    <form action="javascript:alert('hello')">
        username: <input type="text" name="username" id="username"><br>
        password: <input type="password" name="pwd" id="pwd"><br>
        <input type="submit" value="submit" id="submit">
    </form>
    
        def test_login(self):
            username = self.driver.find_element_by_id('username')
            password = self.driver.find_element_by_id('pwd')
            time.sleep(3)
            print(username.get_attribute('type'))
            self.driver.find_element_by_id('submit').click()
    

  • checkbox和radiobutton

    新建一个form表单

    	swimming: <input type="checkbox" name="swimming" value="swimming"><br>
        reading: <input type="checkbox" name="reading" value="reading"><br>
        <hr>
        gender: <input type="radio" name="gender" value="male">
        <input type="radio" name="gender" value="female"><br>
    

    在这里插入图片描述

        def check_box(self):
            swimming = self.driver.find_element_by_name('swimming')
            reading = self.driver.find_element_by_name('reading')
            if not swimming.is_selected():
                swimming.click()
            if not reading.is_selected():
                reading.click()
            time.sleep(2)
            #定位到gender的有两个元素,因此要用find_elements
            lst = self.driver.find_elements_by_name('gender')
            lst[0].click()
            time.sleep(2)
            lst[1].click()
    

  • 下拉列表选框

在这里插入图片描述
新建form表单

<form action="javascript:alert('select')">
    provide:
    <select name="provise" id="provise">
        <option value="bj">Beijing</option>
        <option value="tj">Tianjin</option>
        <option value="sh">Shanghai</option>
    </select>
</form>
    def select_box(self):
        se = self.driver.find_element_by_id('provise')
        select = Select(se)
        select.select_by_value('tj')
        time.sleep(2)
        select.select_by_index(0)
        time.sleep(2)
        select.select_by_visible_text('Shanghai')

多选select选框

新建form表单

<form action="javascript:alert('select')">
    provide:
    <select name="provise" id="provise" multiple> 
        <option value="bj">Beijing</option>
        <option value="tj">Tianjin</option>
        <option value="sh">Shanghai</option>
    </select>
</form>
    def mul_select_box(self):
        se = self.driver.find_element_by_id('provise')
        select = Select(se)
        for i in range(3):
            select.select_by_index(i)
            time.sleep(1)
        time.sleep(2)
        select.deselect_all()


alert提示框

在这里插入图片描述
三种弹框都用self.driver.switch_to.alert调出
在这里插入图片描述
新建html页面

<a href="javascript:alert('提示框')" id="alert">Alert</a><br>
<a href="javascript:confirm('真的删除数据吗?')" id="confirm">Confirm</a><br>
<a href="javascript:var age = prompt('请输入年龄');document.write(age)" id="prompt"> Prompt</a><br>
    def alert_handle(self):
        self.driver.find_element_by_id('alert').click() #调出alert
        #切换到alert
        alert = self.driver.switch_to.alert
        print(confirm.text)
        alert.accept()
        time.sleep(3)
        self.driver.quit()
    def alert_handle(self):
        self.driver.find_element_by_id('confirm').click() #调出alert
        #切换到confirm
        confirm = self.driver.switch_to.alert
        print(confirm.text)
        confirm.accept()
        confirm.dismiss()
        time.sleep(3)
        self.driver.quit()

执行JS脚本

在这里插入图片描述

    def js_test(self):
        self.driver.execute_script("alert('hello')") #弹窗弹出一个alert
        time.sleep(2)
        self.driver.switch_to.alert.accept()
        time.sleep(2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值