python页面数据获取相关报错

1’list’ object has no attribute 'send_keys’报错

程序在执行如下代码的时候报错’list’ object has no attribute ‘send_keys’
解决:
把find_elements_by_id方法改成find_element_by_id

2.selenium.common.exceptions.InvalidElementStateException: Message: invalid element state

在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException),一般可以从以下几个方面着手解决:
1.Frame/Iframe原因定位不到元素:
  这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。
解决方案:
如果iframe有name或id的话,直接使用switch_to_frame(“name值”)或switch_to_frame(“id值”)。如下:
driver=webdriver.Firefox()
driver.get(r’http://www.126.com/’)
driver.switch_to_frame(‘x-URS-iframe’) #需先跳转到iframe框架
username=driver.find_element_by_name(‘email’)
username.clear()

如果iframe没有name或id的话,则可以通过下面的方式定位:
#先定位到iframe
elementi= driver.find_element_by_class_name(‘APP-editor-iframe’)
#再将定位对象传给switch_to_frame()方法
driver.switch_to_frame(elementi)

如果完成操作后,可以通过switch_to.parent_content()方法跳出当前iframe,或者还可以通过switch_to.default_content()方法跳回最外层的页面。
另:可前往我另外一篇博文了解下html的iframe标签:w3school之HTML学习笔记-框架标签

2.Xpath描述错误原因:
由于Xpath层级太复杂,容易犯错。但是该定位方式能够有效定位绝大部分的元素,建议掌握。
解决方案:
2.1可以使用Firefox的firePath,复制xpath路径。该方式容易因为层级改变而需要重新编写过xpath路径,不建议使用,初学者可以先复制路径,然后尝试去修改它。
2.2提高下写xpath的水平。
可以详看笔者另外一篇博文总结:Selenuim+Python之元素定位总结及实例说明
该博文详细总结了Xpath的使用,多组合定位一般都能实现定位问题。

如何检验编写的Xpath是否正确?编写好Xpath路径,可以直接复制到搜狐浏览器的firebug查看html源码,通过Xpath搜索:如下红色框,若无报错,则说明编写的Xpath路径没错。
find_element_by_xpath("//input[@id=‘kw’]")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可能是因为您没有正确设置HTML页面中的元素ID或者没有正确调用pyecharts的渲染函数。以下是一个简单的例子,演示如何在Flask应用中使用pyecharts绘制词云图并在前端页面显示。 ```python from flask import Flask, render_template from pyecharts.charts import WordCloud from pyecharts.globals import SymbolType app = Flask(__name__) @app.route('/') def index(): # 构造词云图数据 words = [("Python", 100), ("Flask", 80), ("pyecharts", 60), ("前端", 50), ("后端", 40), ("数据分析", 30)] # 创建词云图对象,设置样式和数据 wordcloud = ( WordCloud() .add("", words, word_size_range=[20, 100], shape=SymbolType.DIAMOND) .set_global_opts(title_opts={"text": "词云图"}) ) # 使用render_embed()函数获取词云图的HTML代码 chart = wordcloud.render_embed() # 渲染模板并返回HTML页面 return render_template('index.html', chart=chart) if __name__ == '__main__': app.run(debug=True) ``` 在HTML模板中,您需要使用`{{ chart | safe }}`将词云图的HTML代码嵌入到页面中。以下是一个简单的HTML模板示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>词云图示例</title> <!-- 引入pyecharts的JS库 --> {{ chart.load_javascript() }} </head> <body> <!-- 在这里嵌入词云图的HTML代码 --> {{ chart | safe }} </body> </html> ``` 请注意,您需要在HTML页面的<head>标签中引入pyecharts的JS库,否则词云图无法正常显示。此外,为了避免XSS攻击,使用`| safe`过滤器将HTML代码标记为安全,以便Flask可以将其呈现到页面中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云浩舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值