Selenium—web元素的 *** 作

Selenium—web元素的 *** 作,第1张

概述web元素的基本 *** 作 获取元素 获取元素,赋值变量 inputbox = driver.find_element_by_id("kw") 获取元素文本信息 driver.find_element_by_css_selector(‘[href="http://news.baidu.com"]‘).text 获取元素属性值  driver.find_element_by_css_selector(‘[ web元素的基本 *** 作 获取元素

获取元素,赋值变量

inputBox = driver.find_element_by_ID("kw")

获取元素文本信息

driver.find_element_by_CSS_selector(‘[href="http://news.baIDu.com"]‘).text

获取元素属性值 

driver.find_element_by_CSS_selector(‘[href="http://news.baIDu.com"]‘).get_attribute("class"))
获取多个元素 *** 作元素

点击

单击:.click() 双击:.double_click() 右键:.context_click()

编辑框输入信息

.send_keys()

清除文本

.clear()
等待元素 强制等待 time.sleep() 单位:s 强制代码停止运行,在selenium中不够智能;如果设置的时间短,元素还没加载出来,会导致报错;如果设置时间过长,会影响代码的执行效率 显式等待 webdriverwait().until() 在设置的时间内,每0.5s查看该元素是否可见,如果可见,则终止等待;如果不可见则继续等待,直至超时报错 隐式等待 implicitly_wait() 在设置后所有的元素定位都会等待给定的时间,直到元素出现为止,在设置的时间内元素没出现就会报错 隐式等待是一个全局设置,如果后面的需要更改等待时间,则还需要重新设置  实例: 使用selenium,打开Chrome,输入网址:https://baIDu.com 查看新闻的文本信息 输入框内输入selenium python,点击搜索按钮,打印出所有的搜索信息
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import webdriverwaitfrom selenium.webdriver.support import expected_conditions as ECimport timedriver = webdriver.Chrome()driver.get("https://www.baIDu.com")# 隐式等待# 该方法为全局设置,设置后,以下所有的find方法都会预等10s,直至元素出现driver.implicitly_wait(10)# 定位百度输入框元素inputBox = driver.find_element_by_ID("kw")# 定位右上角的 新闻 元素news = driver.find_element_by_CSS_selector([href="http://news.baIDu.com"])# 显式等待,并将该元素赋值给 buttonbutton = webdriverwait(driver,10).until(                      EC.presence_of_element_located((By.ID,"su"))                      )# webdriverwait中参数解析:    # webdriverwait(driver,timeout,poll_frequency=PolL_FREQUENCY,ignored_exceptions=None)    # driver:驱动浏览器---【driver = webdriver.Chrome()】    # timeout:设置的最长等待时间    # poll_frequency:检测的时间间隔,即每0.5s查询一次元素,默认为0.5s,可缺省    # ignored_exceptions:超时后的报错信息,默认为NoSuchElementException# 获取 news 的文本信息print("新闻链接的文本信息为:",news.text)# 使用get_attribute方法获取新闻链接的class属性值print("新闻链接的class属性值为:",news.get_attribute("class"))print(\n******************分割******************\n)# 百度输入框内输入 seleniuminputBox.send_keys("selenium")# 强制等待1stime.sleep(1)# 清除输入框内容inputBox.clear()# 百度输入框内输入 selenium pythoninputBox.send_keys("selenium python")# 点击百度一下按钮button.click()# 获取查询结果中,所有的 //div//h3/a 元素信息# 百度搜索中,很多查询结果带有广告信息,虽然界面可以插件来屏蔽,但是元素信息仍然存在!# 通过非广告信息与广告信息的元素对比,得知,广告元素中存在 data-landurl 属性,该属性值为链接形式# 通过 not(contains(@data-landurl,‘http‘)) 筛选出,不包含 data-landurl 属性值存在 http 的元素texts = driver.find_elements_by_xpath("//div//h3/a[not(contains(@data-landurl,‘http‘))]")# 使用for循环,列出每个元素的text属性for one in texts:    print(one.text)driver.quit()

 

输出结果如下:

新闻链接的文本信息为: 新闻新闻链接的class属性值为: mnav******************分割******************Python爬虫从入门到放弃(八)之 Selenium库的使用 - python修行路 ...Selenium+Python学习之一 - 避雨亭 - 博客园Selenium(Python web测试工具)基本用法详解_python_内存溢出python bindings for selenium webdriver - selenium · PyPISelenium with Python — Selenium Python Bindings 2 ...Selenium自动化测试入门(基于Python) - baby_hua的专栏 - CSDN博客Selenium with Python — Selenium Python Bindings 2 ...Python 爬虫基础Selenium库的使用(二十二01) - 凯耐的博客 - CSDN...2. 快速入门 — Selenium-Python中文文档 2 documentationselenium+python自动化测试系列(一):登录_手记
总结

以上是内存溢出为你收集整理的Selenium—web元素的 *** 作全部内容,希望文章能够帮你解决Selenium—web元素的 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1075800.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存