问 题

问题1

selenium 运行网易中js脚本报错提示未定义

报错提示如下:

driver.execute_script("javascript:amsInit(62800,303153);");

error:

selenium.common.exceptions.WebDriverException: Message: ReferenceError: amsInit is not defined

js函数是个链接,点击后打开天涯明月刀的选择服务器大区窗口,按钮的代码如下:

【绑定大区】

firefox控制台运行 amsInit(62800, 303153); 有效能正常打开选择大区窗口,但会提示未定义,如下:

firefox控制台运行

>>amsInit(62800,303153)

请问直接调用网页中的类似js脚本,需要如何实现?

问题2:

代码如下一个的一个选择窗口,如何用selenium操作

请选择大区青龙乱舞大地飞鹰血海飘香名剑风流陌上花开天命风流请选择服务器

尝试一下方法均不可选中

使用Select方法无效

Select(driver.find_element_by_id("area1ContentId_wuxia")).select_by_value("7609705")

遍历option,使用click方法无效

allOptions = select.find_elements_by_tag_name("option")

for option in allOptions:

print "Value is: " + option.get_attribute("value") + "Text is:"+ option.text

option.click()

break

请问如上的选择应该如何操作?

解决方案

自己解决:

这个选择框是js回调操作的 select 方法和client都无效,解决办法是 使用 keys.ARROW_DOWN键盘事件模拟选择

# 遍历选择大区,服务器

allarea1options = driver.find_element_by_id("area1ContentId_wuxia").find_elements_by_tag_name("option")

for option in allarea1options:

if option.text == area1:

print(u"找到大区:".encode("gbk") + option.text.encode("gbk"))

driver.find_element_by_id("area1ContentId_wuxia").send_keys(Keys.ENTER)

time.sleep(1)

# 选择服务器

select_area = driver.find_element_by_id("areaContentId_wuxia")

allareaoptions = select_area.find_elements_by_tag_name("option")

for option in allareaoptions:

if option.text == area2:

print(u"找到服务器:".encode("gbk") + option.text.encode("gbk"))

driver.find_element_by_id("areaContentId_wuxia").send_keys(Keys.ENTER)

break

else:

driver.find_element_by_id("areaContentId_wuxia").send_keys(Keys.ARROW_DOWN)

else:

driver.find_element_by_id("area1ContentId_wuxia").send_keys(Keys.ARROW_DOWN)

扫一扫关注IT屋

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

python调用js文件报错_python - selenium 运行网页中js脚本报错,提示未定义相关推荐

  1. python读取压缩文件的大小_python查看zip包中文件及大小的方法

    python查看zip包中文件及大小的方法 本文实例讲述了python查看zip包中文件及大小的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import ...

  2. python爬图片显示不了_Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片http://pic.s ...

  3. mysql脚本报错继续执行_解决执行sql脚本报错:没有足够的内存继续执行程序。...

    AngularJS 模块& 表单 模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. 应用("myApp" ...

  4. eclipse 如何忽略js文件报错

    本文翻译自:http://stackoverflow.com/questions/10254922/jquery-mobile-1-1-0-min-triggers-errors-in-eclipse ...

  5. win10编辑js文件报错,错误','

    在filezilla中编辑js文件报错,在本地可以使用文本编辑,但需重新上传覆盖,很不方便 在win10默认应用中修改为文本编辑即可,在FTP编辑: 直接可以打开编辑

  6. MyEclipse导入项目后 js文件报错

    当我们把项目导入MyEclipse的时候会发现导入的项目报错,点开一看是js文件报错了,那么我们应该如何处理导入MyEclipse之后js文件报错呢??? 首先,我们要保证我们导入的代码是正确的. 解 ...

  7. python打开xml文件报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xb7 in position 58: illegal multi

    本篇文章主要讲解,python打开xml文件报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xb7 in position 58: ille ...

  8. 已解决(Python读取xml文件报错)xmL.etree.ELementTree.ParseError:not well-formed (invalid token): Line

    已解决(Python读取xml文件报错)xmL.etree.ELementTree.ParseError:not well-formed (invalid token): Line 文章目录 报错信息 ...

  9. Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘)

    Python读取xls文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+': not supported') 只需要下载pyexce ...

最新文章

  1. 01背包java 源码
  2. 系统ICP通信参数配置
  3. Activemq -- Spring 整合
  4. html css 前端实现消息提醒数_自学的福音,web前端学习全套视频教程+最新学习思维导图都在这里...
  5. 【牛客 - 368B】选点(dfs序,LIS 或 dfs序 + 树状数组 + 离散化,树状数组求LIS的方法)
  6. 【学习笔记】MOOC 数学文化赏析 笔记【补档】
  7. 二本非科班30岁转行架构师的老徐:站在巨人的肩膀学习才是捷径
  8. 【opencv学习】【Canny边缘检测】
  9. 天融信防火墙web配置_天融信协议转换交付系统震撼发布——IPv4/IPv6融合改造利器...
  10. 程序员怎样才能写出一篇好的博客或者技术文章
  11. opboot怎么刷入固件_竞斗云系列四:Opboot1.09+128M固件刷机
  12. AD19解决复制粘贴后Designator出现问号的问题——需要更改设置
  13. 微信广告转化归因几个坑 gdt_vid和clickid
  14. 亚马逊店铺关联的申诉流程分享给大家。
  15. 各种Hash函数和代码
  16. python的学习结构
  17. Hive之数仓的分层及建模理论(3)
  18. Edge浏览器固定到任务栏的网页图标显示透明
  19. 6-5 计算天数[2] (15 分)
  20. 可编辑的el-table表格

热门文章

  1. Spark:Yarn-cluster和Yarn-client区别与联系
  2. vue中检测断网处理
  3. java8 list 去重_Java8中的Stream,一行代码,让集合操作飞起来
  4. 通过命令行获取计算机参数,Win32命令行参数的传到和获取
  5. python知识笔记_[Python笔记]第一篇:基础知识
  6. 【C语言】不能使用 while(fgetc(fp)!=EOF)进行文件复制
  7. git 删除tag_Git常用命令
  8. android 简单json,Android JSON数据简单处理
  9. linux transmission,Linux下使用Transmission新版
  10. mysql mvcc和行锁_mysql在RR的隔离级别下,究竟是通过MVCC解决幻读的还是通过行锁的next key算法解决的?...