
获取元素,赋值变量
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元素的 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)