测开-键盘鼠标、弹窗(selenium)

模拟键盘鼠标

'''
1、click:单击鼠标左键
2、click_and_hold:点击鼠标左键,不松开
3、context_click:点击鼠标右键
4、double_click:双击鼠标左键
5、drag_and_drop:拖拽到某个元素然后松开
6、drag_and_drop_by_offset:拖拽到某个坐标然后松开
7、key_down:按下某个键盘上的键
8、key_up:松开某个键
9、move_by_offset:鼠标从当前位置移动到某个坐标
10、move_to_element:移动到某个元素
11、move_to_element_with_offset:移动到某个元素(左上角坐标)多少距离的位置
12、perform:执行链中的所有动作
13、release:在某个位置松开鼠标左键
14、send_keys:发送某个键到当前焦点的元素
15、send_keys_to_element:发送某个键到指定元素

'''
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from time import sleep

from selenium.webdriver.common.keys import Keys


class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Firefox()
        # self.driver.get("http://sahitest.com/demo/clicks.htm")
        self.driver.get("https://www.baidu.com")

    def test_mouse(self):
        btn = self.driver.find_element_by_xpath('/html/body/form/input[2]')
        ActionChains(self.driver).double_click(btn).perform()
        sleep(2)

        btn = self.driver.find_element_by_xpath('/html/body/form/input[3]')
        ActionChains(self.driver).click(btn).perform()
        sleep(2)

        btn = self.driver.find_element_by_xpath('/html/body/form/input[4]')
        ActionChains(self.driver).context_click(btn).perform()
        sleep(5)

    def test_key(self):
        kw = self.driver.find_element_by_id('kw')
        kw.send_keys('selenium')
        sleep(2)
        kw.send_keys(Keys.CONTROL,'a')
        sleep(2)
        kw.send_keys(Keys.CONTROL,'x')
        sleep(2)
        kw.send_keys(Keys.CONTROL,'v')
        sleep(3)

        set = self.driver.find_element_by_name('tj_settingicon')
        ActionChains(self.driver).move_to_element(set).perform()
        sleep(5)

if __name__ == '__main__':
    case = TestCase()

    # case.test_mouse()
    case.test_key()

弹窗

'''
alert:提示
confirm:确认取消弹框
prompt:提示用户输入数据

点击确认按钮:driver.switch_to.alert.accept()
点击取消按钮:driver.switch_to.alert.dismiss()

如果alert弹框上有文本框,可以输入文字
driver.switch_to.alert.sendkeys()

返回alert上的文本内容
text = driver.switch_to.alert.text

'''

from selenium import webdriver
import os
from time import sleep

class TeseCase(object):
    def __init__(self):
        self.driver = webdriver.Firefox()
        path = os.path.dirname(os.path.abspath(__file__))
        file_path = "file:///"+path+"/forms.html"
        self.driver.get(file_path)

    def test_alert(self):
        self.driver.find_element_by_id("alert").click()
        sleep(2)
        alert = self.driver.switch_to.alert
        print(alert.text)
        alert.accept()
        sleep(2)

    def test_confirm(self):
        self.driver.find_element_by_id("confirm").click()
        sleep(2)
        confirm = self.driver.switch_to.alert
        print(confirm.text)
        confirm.dismiss()
        sleep(2)

    def test_prompt(self):
        self.driver.find_element_by_id("prompt").click()
        sleep(2)
        prompt = self.driver.switch_to.alert
        print(prompt.text)
        sleep(2)
        prompt.send_keys('20')
        sleep(2)
        prompt.accept()
        sleep(2)


if __name__ == '__main__':
    case = TeseCase()
    # case.test_alert()
    case.test_confirm()
    # case.test_prompt()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>my forms</title>
</head>
<body>

<form action="javascript:alert('login')">
    用户名:<input type="text" name="username" id="username"><br>
    密码:<input type="password" name="pwd" id="pwd"><br>
    <hr>
    游泳:<input type="checkbox" name="swiming" value="swiming"><br>
    阅读:<input type="checkbox" name="reading" value="reading"><br>
    <hr>
    性别:<br>
    男:<input type="radio" name="gender" value="male"><br>
    女:<input type="radio" name="gender" value="female"><br>

    <hr>
    省份:<select name="provise" id="provise" multiple>
            <option value="bj">北京</option>
            <option value="tj">天津</option>
            <option value="sh">上海</option>
            <option value="sz">深圳</option>
            <option value="gz">广州</option>
            <option value="hz">杭州</option>
        </select>
    <input type="submit" value="注册" id="submit">
</form>
<hr>
<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>

</body>
</html>

 

posted on 2020-07-28 16:48  echooche  阅读(19)  评论(0)    收藏  举报

导航