zoukankan      html  css  js  c++  java
  • Python3+Selenium3+webdriver学习笔记14(等待判断 鼠标事件 )

    !/usr/bin/env python
    -*- coding:utf-8 -*-
    '''
    Selenium3+webdriver学习笔记14(等待判断 鼠标事件 )
    '''
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.select import Select
    from selenium.webdriver.support.ui import WebDriverWait
    import time,os

    # about:addons 火狐浏览器安装组件,访问的地址

    # <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    #id
    keys="设置"
    delay=5
    url="https://www.baidu.com/"
    driver=webdriver.Firefox()

    driver.get(url)

    #让弹窗页面不显示
    # js='document.getElementById("id名字").style.display="none";'

    #通过脚本方式操作 id name tagname classname css
    # document.getElementById("")
    # document.getElementsByName("")
    # document.getElementsByTagName("")
    # document.getElementsByClassName("")
    # document.querySelectorAll("")

    #文件下载-待调试
    # fp = webdriver.FirefoxProfile()
    # fp.set_preference("browser.download.folderList",2)
    # fp.set_preference("browser.download.manager.showWhenStarting",False)
    # fp.set_preference("browser.download.dir", os.getcwd())
    # fp.set_preference("browser.helperApps.neverAsk.saveToDisk",
    # "application/octet-stream")
    #
    # driver = webdriver.Firefox(firefox_profile=fp)
    # driver.get("https://pypi.org/project/selenium/#files")
    # driver.find_element_by_partial_link_text("selenium-3.141.0.tar.gz").click()
    # #确定下载
    # t=driver.switch_to.alert
    # t.accept()

    #等待使用
    # 强制等待
    time.sleep(delay)

    #隐形等待
    driver.implicitly_wait(delay)

    #显示等待
    input_str=WebDriverWait(driver,10).until(lambda driver:driver.find_element(By.ID,"kw"),message="error!")
    input_str.send_keys(keys)

    kk = WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_id("kw"),message="worry!")
    kk.send_keys("测试")

    """参考https://www.cnblogs.com/lvzb86/p/9321929.html
    click(on_element=None) ——单击鼠标左键

    click_and_hold(on_element=None) ——点击鼠标左键,不松开

    context_click(on_element=None) ——点击鼠标右键

    double_click(on_element=None) ——双击鼠标左键

    drag_and_drop(source, target) ——拖拽到某个元素然后松开

    drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开

    key_down(value, element=None) ——按下某个键盘上的键

    key_up(value, element=None) ——松开某个键

    move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标

    move_to_element(to_element) ——鼠标移动到某个元素

    move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置

    perform() ——执行链中的所有动作

    release(on_element=None) ——在某个元素位置松开鼠标左键

    send_keys(*keys_to_send) ——发送某个键到当前焦点的元素

    send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素
    """

    """参考https://www.cnblogs.com/lvzb86/p/9492097.html
    title_is:判断当前页面的title是否等于预期
    title_contains:判断当前页面的title是否包含预期字符串
    presence_of_element_located:判断某个元素是否被加到了dom树里,并不代表该元素一定可见
    visibility_of_element_located:判断某个元素是否可见. 可见代表元素非隐藏,并且元素的宽和高都不等于0
    visibility_of:跟上面的方法做一样的事情,只是上面的方法要传入locator,这个方法直接传定位到的element就好了
    presence_of_all_elements_located:判断是否至少有1个元素存在于dom树中。举个例子,如果页面上有n个元素的class都是'column-md-3',那么只要有1个元素存在,这个方法就返回True
    text_to_be_present_in_element:判断某个元素中的text是否 包含 了预期的字符串
    text_to_be_present_in_element_value:判断某个元素中的value属性是否包含了预期的字符串
    frame_to_be_available_and_switch_to_it:判断该frame是否可以switch进去,如果可以的话,返回True并且switch进去,否则返回False
    invisibility_of_element_located:判断某个元素中是否不存在于dom树或不可见
    element_to_be_clickable - it is Displayed and Enabled:判断某个元素中是否可见并且是enable的,这样的话才叫clickable
    staleness_of:等某个元素从dom树中移除,注意,这个方法也是返回True或False
    element_to_be_selected:判断某个元素是否被选中了,一般用在下拉列表
    element_located_to_be_selected
    element_selection_state_to_be:判断某个元素的选中状态是否符合预期
    element_located_selection_state_to_be:跟上面的方法作用一样,只是上面的方法传入定位到的element,而这个方法传入locator
    alert_is_present:判断页面上是否存在alert
    """

    driver.quit()
  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1160 FatMouse's Speed
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1003 Max Sum
    HDU 1297 Children’s Queue
    UVA1584环状序列 Circular Sequence
    UVA442 矩阵链乘 Matrix Chain Multiplication
    DjangoModels修改后出现You are trying to add a non-nullable field 'download' to book without a default; we can't do that (the database needs something to populate existing rows). Please select a fix:
    opencv做的简单播放器
    c++文件流输入输出
  • 原文地址:https://www.cnblogs.com/NiceTime/p/10068432.html
Copyright © 2011-2022 走看看