python selenium 无法获取元素的值

python selenium 无法获取元素的值,第1张

无法打印出元素的值(用户名密码错误)

原因是: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 基本 *** 作方法总结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9435899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存