selenium浏览器元素的操作

定位元素只是第一步,定位之后需要对这个元素进行操作,或点击(按钮)或输入(输入框)或提交(表单)等等。。。

一、click()方法实现键盘的点击

from selenium import webdriver
from time import sleep

dr = webdriver.Chrome()
url = "https://www.so.com"
dr.get(url)

#定位到360输入框,输入selenium
#send_keys()方法模拟键盘输入
dr.find_element_by_id("input").send_keys("selenium")
sleep(2)
#清除输入的内容
#clear()清除元素上的文本信息
dr.find_element_by_id("input").clear()
sleep(2)
#定位到360输入框,输入selenium自动化
dr.find_element_by_id("input").send_keys("selenium自动化")
sleep(2)
#定位到搜索按钮,并点击
dr.find_element_by_id("search-button").click()

二、send_keys()方法模拟上传文件

from selenium import webdriver
from time import sleep
from selenium.webdriver.support.select import Select

dr = webdriver.Chrome()
dr.get("http://www.baidu.com")
dr.find_element_by_css_selector(".soutu-btn").click()
dr.find_element_by_css_selector(".upload-pic").send_keys(r"D:\python_logo.png")

三、text 返回元素的文本

from selenium import webdriver

driver = webdriver.Chrome()
url = “http://www.baidu.com”
driver.get(url)

#使用size属性,获取百度搜索框的尺寸,并赋值给变量input_size
input_size = driver.find_element_by_id("kw").size

#打印出百度搜索框的尺寸
print(input_size)

#使用text属性,获取百度底部的备案信息
bean_info = driver.find_element_by_id("cp").text
print(bean_info)

#使用get_attribute()方法,获取属性对应的值
#返回元素的属性值,可以是id、name、type或元素拥有的其他任意属性
#下面定位到百度首页的新闻这个文本链接,然后获取他的href属性对应的值
href_va = driver.find_element_by_link_text("新闻").get_attribute("href")

四、隐式等待

通过一定的时长等待页面的某个元素加载完成。
如果超出了设置的时长,元素还没有被加载出来,则抛出异常:NoSuchElementException。

from selenium import webdriver

driver = webdriver.Chrome()
#设置等待超时时间
driver = implicitly_wait(100)
#打开系统搜索页面
driver.get("https://www.so.com/")

#检查系统制定元素是否加载完成
element = driver.find_element_by_id("input22")
#在输入框中输入 selenium
element.send_keys("selenium")

implicitly_wait()默认参数的单位为秒,本例中设置等待时长为100秒,首先这100秒并非一个固定的等待时间,它并不影响脚本的执行速度。

其次,它并不真对页面上的某一元素进行等待,当脚本执行到某个元素定位时,如果元素可定位那么继续执行,如果元素定位不到,那么它将以轮询的方式不断的判断元素是否被定位到,假设在第6秒钟定位到元素则继续执行。直接超出设置时长(100秒)还没定位到元素则抛出异常。

在上面的例子中,显然360输入框的定位 id= input22 是有误的,那么在超出100秒后将抛出异常。

五、sleep等待

固定等待时间

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()

driver.get("https://www.baidu.com")
sleep(5)

六、submit()用于提交表单

submit()方法用于提交表单,这里特别用于没提交

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__泡泡茶壶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值