无法打印出元素的值(用户名密码错误)
原因是:style="display: none;" 元素不展示
修改 style的值
修改后:style=display: block;
然后就可以打印出值(用户名或密码错误)
总结:
第一种用jQuery的val方法:
js = "return $('input')val();"
driverexecute_script(js)
第二种用jQuery的attr方法:
js = "return $('input')attr('value');"
driverexecute_script(js)
第三种用selenium自带的方法:
driverfind_element_by_tag_name('input')get_attribute('value')
# 定位 UI 元素 (WebElements)
find_element_by_id
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
# 获取元素数据
eleget_attribute('href')
eletext
eleinner
eleget_attribute('outerHTML')
eleget_attribute('innerHTML')
# 导入 ActionChains 类
from seleniumwebdriver import ActionChains
# 鼠标移动到 ac 位置
ac = driverfind_element_by_xpath('element')
ActionChains(driver)move_to_element(ac)perform()
# 在 ac 位置单击
ac = driverfind_element_by_xpath("elementA")
ActionChains(driver)move_to_element(ac)click(ac)perform()
# 在 ac 位置双击
ac = driverfind_element_by_xpath("elementB")
ActionChains(driver)move_to_element(ac)double_click(ac)perform()
# 在 ac 位置右击
ac = driverfind_element_by_xpath("elementC")
ActionChains(driver)move_to_element(ac)context_click(ac)perform()
# 在 ac 位置左键单击 hold 住
ac = driverfind_element_by_xpath('elementF')
ActionChains(driver)move_to_element(ac)click_and_hold(ac)perform()
# 将 ac1 拖拽到 ac2 位置
ac1 = driverfind_element_by_xpath('elementD')
ac2 = driverfind_element_by_xpath('elementE')
ActionChains(driver)drag_and_drop(ac1, ac2)perform()
# 导入 Select 类
from seleniumwebdriversupportui import Select
select = Select(driverfind_element_by_name('status')
selectselect_by_visible_text("审核不通过")
# 页面切换
driverswitch_towindow("window name")
# *** 作页面的前进和后退
driverforward()
driverback()
# 页面等待
## 隐式等待
driverimplicitly_wait(10)
## 显示等待
try: # 页面一直循环,直到 id="myElement" 出现
element = WebDriverWait(driver, 10)until(ECpresence_of_element_located((ByID, "myElement")))
finally:
driverquit()
爬虫当中的cookie的作用
1 模拟登录 (有的网站你加上cookie也登录不了)
2 反反爬(检查cookie),可以定期自动更新cookies,躲避反爬机制
先登陆qzoneqqcom, 然后右键检查,找到登陆面板 iframe 并且获取 src属性内的 URL
1、直接打开selenium的主界面,按照File→New→Class的顺序进行点击。
2、下一步,需要在d出的窗口中设置相关内容并确定创建。
3、这个时候,输入获取元素属性的对应代码。
4、如果没问题,就按照图示启用取得id值的功能。
5、等完成上述 *** 作以后,继续通过对应网页选择图示按钮跳转。
6、这样一来会得到相关结果,即可达到目的了。
$(function(){ var html="<div class='fg' style='background-color:pink;color:red'>我是被动态创建的</div>" $("fg")append(html); }) 应将代码<a href=">
1、获取输入框再输入信息的时候,发现send_keys会把内容输入到所获取输入框的隔壁框框(比如下一个框),排查一大通后发现,是因为待输入的数据前面包含个空格(这空格在Excel里还看不出来),send_keys方法会连空格也输入进去,元素定位并没有不准,这空格就是输入“跳框”的元凶。
解决的办法是检查待输入的源数据,strip去掉前后的空格。
2、直接定位元素的方法,比如Xpath和CSS Selector虽然方便,但是用多了程序健壮性会变差。想想也是,比如新开的页面里,按钮多一个少一个,或者顺序位置发生变化,元素就选错了,后面肯定就不按剧本走了。
这时候最好按id、class name来获取,如果不唯一,那就遍历循环判断(比如先找到父元素再遍历各个子元素),虽然程序运行效率会降低一些,但是程序跑起来的时候不容易挂。
关于效率问题其实也不用太纠结,我都纯用Selenium了我还在乎啥效率啊(手动狗头)
3、循环判断筛选元素的时候,get_attribute是个好东东,常见的比如text,scr,甚至onclick事件里的字符串都可以用来做判断。但是切记最好放在try里,遍历虽好,找到个空值就直接挂了。
爬取时间:2021/01/27
系统环境:Windows 10
所用工具:Jupyter Notebook\Python 30
涉及的库:selenium\time\pandas\matplotlib\jieba\stylecloud
蛋肥想法: 借助selenium,实现对“查看更多”的自动点击,目标是获取2020年的文章相关数据。
蛋肥想法: 36氪的数据很满足强迫症,没有空格换行,只需筛选出2020年的数据保存。
蛋肥想法: 此次重点是学习selenium,所以只简单做一下数据可视化。
以上就是关于python selenium 无法获取元素的值全部的内容,包括:python selenium 无法获取元素的值、Selenium获取input输入框中值的三种方法、自动化selenium 基本 *** 作方法总结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)