元-素-的-神-奇-操-作-方-法

                      立竿见影,来吧各位~   后续在实践中补充

                                                                                                                                                                                                                                                      ---------我是骑马的亚瑟

  1.滚动条定位:

    使用js脚本拖动到提定地方

target = driver.find_element_by_id("id_keypair")
driver.execute_script("arguments[0].scrollIntoView();", target) #拖动到可见的元素
这种方法比较常用


2.下拉框定位:
from selenium.webdriver.support.ui import Select
select标签
通过index进行选择
Select(driver.find_element_by_id("gender")).select_by_index(1)
通过value进行选择
Select(driver.find_element_by_id("gender")).select_by_value("2")
通过选项文字进行选择
Select(driver.find_element_by_id("gender")).select_by_visible_text("Male")

非select标签
先定位到下拉菜单

driver.find_element_by_xpath(“//tbody[@id=’teacherListTbody’]/tr[2]/td[9]/li/a”).click()
再对下拉菜单中的选项进行选择
driver.find_element_by_link_text(u”设置管理班级”).click()

3.鼠标与键盘的那些事
perform():执行所有ActionChains中存储的行为,可以理解成是对整个操作的提交动作;

     引入ActionChains类

 

  • ActionChains是自动执行低级交互的一种方式,例如:鼠标移动,鼠标点按,键盘操作,文本操作等。
  • 当我们调用这里的方法时,这些操作会被先储存在一个队列中,当我们调用perform()方法时,队列中的操作会被按顺序执行,执行后队列被清空。

 

 

  鼠标右击:
     from selenium.webdriver.common.action_chains import ActionChains

     定位到需要右击的元素:right_click = driver.find_element_by_id("id")

     对元素进行右击操作:ActionChains(driver).context_click(right_click).perform()

  鼠标左击:

ActionChains(driver).click(right_click)

鼠标悬停:
move_to_element()方法可以模拟鼠标悬停的动作,其用法与context_click()相同;
定位到需要悬停的元素:above = driver.find_element_by_id("id")

对元素进行右击操作:ActionChains(driver).move_to_element(above).perform()

 鼠标双击:

定位到需要悬停的元素:above = driver.find_element_by_id("id")
      对元素进行双击操作:ActionChains(driver).double_click(above).perform()
 鼠标拖动:

     drag_and_drop(source,target) 在源位置元素上按住鼠标左键,然后移动到目标元素上释放。
     source:鼠标拖动的源元素
     target:鼠标释放的目标元素

    定位元素的源位置:source = driver.find_element_by_id("id")

    定位元素要移到到的目标位置:target = driver.find_element_by_id("id")

     元素进行拖动操作:ActionChains(driver).drag_and_drop(source,target).perform()

4.元素等待方法

显性等待:

  1.元素可见:visibility_of_element_located((定位方式,定位表达式))

     2.元素存在: presence_of_element_located((定位方式,定位表达式))

强制等待:

     time.sleep(time)

隐形等待:

    driver.implicitly_wait(20) # 隐性等待,最长等30秒

 

 

找到元素的基本方法是element()

5.元素查找

调用webdriver.的find_element()方法

1.单个元素查找:self.driver.find_element((定位方式,定位表达式))

 2.多个元素查找:self.driver.find_elements((定位方式,定位表达式))

6.元素点击

element.click()

7.元素输入

send_keys(value)

8.获取元素属性值

driver.find_element(By,locator).get_attribute(attr_name)

9.获取文本

部分文本连接:driver.element_by_partial_link_text('maca')

文本链接:driver.element_by_link_text('macaca')

转载于:https://www.cnblogs.com/xiaoqixiao/p/9778242.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值