关于Python+Selenium的问题 有这个元素<div class="uk-form-tishi" id="spinfo">登陆密码输入错误!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Python+Selenium的问题 有这个元素<div class="uk-form-tishi" id="spinfo">登陆密码输入错误!相关的知识,希望对你有一定的参考价值。

如题,我怎么取到‘’登录密码输入错误‘’这个信息呢
from selenium import webdriver
driver=webdriver.Firefox()
url="xxxx"
driver.get(url)
driver.find_element_by_name("user.email").send_keys("xxx")
driver.find_element_by_name("user.password").send_keys("xxx")
driver.find_element_by_id("buttons").click()
mess=driver.find_element_by_xpath("//div[@id='spinfo']").text()
print(mess)
问题是用.text()时一直报下面这个错:
Traceback (most recent call last):
mess=driver.find_element_by_xpath("//div[@id='spinfo']").text()
TypeError: 'str' object is not callable

你安装了Beautifulsoup4了么,没装的话建议装一下。
安装beautifulsoup用pip install bs4
然后用Beautifulsoup去解析网页。没有也没关系,用re模块也可以
if re.search('登陆密码输入错误',wd.page_source):#这个地方的wd是你的webdriver的对象
print('登陆密码输入错误')#这是python3的语法
selenium获取的网页是放在webdriver.page_source里面的,有了这个网页内容就可以进行判断了。
不明白可追问。
参考技术A 在点击登录按钮后,等待2秒(time.sleep(2)) 2.text()改成text
如下:
driver.find_element_by_id("buttons").click()
time.sleep(2)
mess=driver.find_element_by_xpath("//div[@id='spinfo']").text
参考技术B var n=$("#spinfo").text();

追问

高手再问一下,我用的是
info11=driver.find_element_by_xpath("//div[@id='spinfo']").text
print(info11)
为什么什么都打印不出来呢?

追答

print是php打印的,text后面缺少()

关于Python+selenium 定位浏览器弹窗元素

链接:https://www.jianshu.com/p/4c3330c1cdb5

(1)div弹窗

(2)新标签页弹窗

(3)alert弹窗

一,div弹窗

div弹窗是浏览器中比较好定位的弹窗,定位的方法与普通的元素一样。不过这里会有一个坑,明明可以找到这个按钮,但是就是定位不到。这个就是因为当前有div弹窗弹出的时候,需要设置一下等待时间,等页面元素加载完毕,再去做其他操作。



二,新标签页弹窗

新标签页弹窗,则需要进行窗口的切换。此处第一个窗口打开百度首页,在打开一个新窗口打开京东首页,在两个窗口之间进行切换。切换到不同的窗口之后,就可以用常规的方法进行元素的定位。

handles = driver.window_handles # 获取当前打开的所有窗口的句柄

driver.switch_to.window(handles[N]) # 切换到其中一个窗口

其中,获取的句柄下标从0开始,即第一个窗口为[0]、第二个窗口为[1],如此类推。使用switch_to.window方法切换到新标签页后就可以做其他操作了。

三、alert弹窗

在WebDriver中处理JS所生成的alert、confirm以及prompt十分简单,具体做法是使用switch_to.alert()方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作。

1.text:返回alert/confirm/prompt中的文字信息。

2.accept():接受现有警告框。

3.dismiss():解散现有警告框。

4.send_keys(keysToSend):发送文本至警告框。 keysToSend:将文本发送至警告框。

 

如图所示,百度搜索设置弹出的窗口是不能通过前端工具对其进行定位的,这个时候就可以通过switch_to.alert()方法接受这个弹窗。


selenium_弹出框的处理_TypeError: ‘Alert‘ object is not callable

问题描述:

    在使用selenium操作网页弹出框的时候,弹出框是alert类型,预想是点击弹出框的确定。在使用selenium中的switch_to.alert().accept()的方法报错

报错如下:

Traceback (most recent call last):
File "F:/project/全国selenium_测试.py", line 59, in <module>
huoqu_cookie1 = huoqu_cookie()
File "F:/project/全国selenium_测试.py", line 50, in huoqu_cookie
browser.switch_to.alert().accept()
TypeError: ‘Alert‘ object is not callable
原因分析

    ‘Alert‘ object is not callable 的含义为Alert不能被函数调用,它不是一个函数。

解决方案

将alert后的括号去掉。

正确代码:

browser.switch_to.alert.accept()
————————————————
版权声明:本文为CSDN博主「Urila」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jss19940414/article/details/90268434

以上是关于关于Python+Selenium的问题 有这个元素<div class="uk-form-tishi" id="spinfo">登陆密码输入错误!的主要内容,如果未能解决你的问题,请参考以下文章

Selenium2+python自动化39-关于面试的题转载

关于Python+Selenium的问题 有这个元素<div class="uk-form-tishi" id="spinfo">登陆密码输入错误!

关于Selenium3+python3.6自动化测试中iframe切换

关于快速复制粘贴一些文献的元数据的教程

Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用

关于python+selenium+Chrome的一些问题。get报错。请求大佬帮助