python_selenium的学习

1、原理

 

 2、定位元素

根据特征选

#1、根据 name 查找元素位置,定位搜索框进行填充
driver.find_element(By.NAME,"wd").send_keys("hello")

#2、根据class_name查找元素,定位搜索框进行填充
# driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("hello")
#3、根据 id 查找元素位置,定位 “百度一下”的按钮
# driver.find_element(By.ID,"su").click()


#4、根据tag_name定位元素,定位出来的是页面第一个该标签内容
# driver.find_element(By.TAG_NAME,"input").click()
#5、根据link_text定位元素,填写超链接的文字就可
# driver.find_element(By.LINK_TEXT,"图片").click()
#6、根据partial_link_text定位元素,,超链接的文字过长,就可以填写部分进行模糊匹配
# driver.find_element(By.PARTIAL_LINK_TEXT,"图").click()
#7、根据xpath定位元素
# driver.find_element(By.XPATH,'//*[@id="su"]').click()
#8、根据css_selector定位元素
# driver.find_element(By.CSS_SELECTOR,'#su').click()

定位不到元素是什么原因?

1、只能找到一个页面上对应的元素标识,对frame/iframe表单内嵌的页面元素无法直接定位。

2、弹出警告框

#定位弹出警告框
    #点击确认
driver.switch_to.alert.accept()
    #点击取消
driver.switch_to.alert.dismiss()
    #点击获取文本内容
driver.switch_to.alert.text
    #点击发送文本
driver.switch_to.alert.send_keys("")

3、元素没有加载出来就对元素进行定位,可以通过等待解决。

强制等待:

import time 
time.sleep(5)

显示等待:

from selenium.webdriver.support.wait import WebDriverWait
#显示等待,最长时间等待30秒,每隔1秒就去看元素有没有加载完成
WebDriverWait(driver,30).until(driver.find_element(By.ID,'kw'))

隐式等待: 

#隐式等待
driver.implicitly_wait(5)

3、切换窗口

1、

#打开多个页面,需要定位新的页面
    #获取打开的多个窗口句柄
windows = driver.window_handles
    #切换到最后一个页面去
driver.switch_to.window(windows[-1])

2、

#获取目标窗口
windows1 = driver.current_window_handle
#获取所有窗口集合
windows = driver.window_handles
#遍历,如果不是目标窗口就切换下一个
for current_window in windows:
    if current_window != windows1:
        driver.switch_to.window(current_window)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值