当前位置: 首页 > 知识库问答 >
问题:

Python Selenium PhantomJS-禁用Javascript后,我不能点击任何东西或获取任何元素

苏涵润
2023-03-14
def phantom_settings_function():
    # PhantomJS settings
    phantom_settings = dict(DesiredCapabilities.PHANTOMJS)
    phantom_settings['phantomjs.page.settings.userAgent'] = ('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36')
    phantom_settings['phantomjs.page.settings.javascriptEnabled'] = False,   
    phantom_settings['phantomjs.page.settings.loadImages'] = False,
    phantom_settings['phantomjs.page.browserName'] = 'Google Chrome'

    return phantom_settings
browser = webdriver.PhantomJS(desired_capabilities=phantom_settings_function(), service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])
browser.find_element_by_id('c_btnPriceRange').click()

Selenium.common.exceptions.nosuchelementException:消息:{“request”:{“headers”:{“accept”:“application/json”,“accept-encoding”:“identity”,“connection”:“close”,“content-length”:“96”,“content-type”:“application/json;charset=UTF-8”,“host”:“127.0.0.1:52780”,“user-agent”:“python-urllib/3.5”},“httpversion”:“1.1”,“”871DAAC0-147F-11E7-BFDF-4DCE0D86731E\“}”、“URL”:“/element”、“URLParsed”:{“锚点”:“”“、”查询“:”“、”文件“:”元素“、”目录“:”/“、”路径“:”/element“、”相对“:”/element“、”端口“:”主机“:”“、”密码“:”“用户”:“、”用户信息“:”、“协议”:“、”源“:”/element“、”查询键“:{}、”块“:”[“element”]}、“URLOriginal”:“”/session/871DAAC0-147F-11E7-BFDF-4DCE0D86731E/Element“}}屏幕截图:可通过屏幕获得

我尝试过显式等待元素,但它不起作用,当我打印web页面的内容时,我得到了包含元素的完整HTML代码。禁用JavaScript是让Selenium无法运行命令还是什么?

我真的需要帮助。

谢谢。

共有1个答案

施鸿
2023-03-14

我在PhantomJS web驱动程序中也遇到了一个NoSuchElementException问题。我的修复,它基于

python/selenium/phantomjs-在执行之间保留的数据

是添加

browser.implicitly_wait(10)
browser.set_window_size(1120, 550)
browser.find_element_by_id
 类似资料:
  • 问题内容: 当我阅读文件时,我看到 我做错什么了吗? 问题答案: 这是下面链接的博客文章的全文: 如果您最近尝试使用pip安装软件包,则可能遇到此错误: 这似乎是旧版本的OpenSSL与pip 1.3.1不兼容的问题。如果您使用的是非库存的Python发行版(特别是EPD 7.3),则很可能会设置不配合pip 1.3.1进行工作,而不会花费很多精力。 目前,最简单的解决方法是安装不需要SSL的pi

  • 我是不是漏了什么? 这不能编译。Eclipse抱怨"Matcher Asrett类型中的方法断言(T, Matcher)不适用于参数(int, Matcher 我错过了什么东西可以用吗?我在过去使用过其他Hamcrest方法...那么这有什么不同呢?

  • 问题内容: 我在将任何内核模块构建到我的机器上时遇到问题。每当我构建模块时,modpost总是说模块为零: 为了解决该问题,我编写了一个测试模块(hello.c): 这是模块的Makefile: 在计算机上构建它时,得到以下输出: 当我在另一台机器上制作模块时,它成功了: 我寻找了有关modpost的任何相关文档,但收效甚微。任何人都知道modpost如何决定要构建什么?我可能会缺少一个环境吗?

  • 问题内容: 我有以下代码: 该文件包含以下内容: 但是由于某种原因,每次都只返回一个空列表。 代码中可能存在愚蠢的错误或错字,但我只是找不到。提前致谢。 问题答案: 你读的文件 已经 和文件指针不是在 末尾 的文件。然后调用将不会返回数据。 仅读取一次文件: 另一种选择是在重新阅读之前先回到开头: 但这只是浪费CPU和I / O时间。 最好的办法是尝试和阅读 小 数据量,或寻求到了最后,通过采取文

  • 我使用的是spring-boot-starter-parent版本2.0.1 这是我想要缓存结果的java方法。 我没有redis或缓存的任何其他配置。虽然它不抛出任何错误,但它不缓存任何东西。我和Redis-Cli核实了。

  • 我至少一个月没更新任何东西了。我刚刚正常工作,突然菜单都是空白的,所以我决定重新启动eclipse。我单击“关闭”和“确定”保存所有内容,但什么也没发生,所以我再次单击“关闭”并关闭eclipse。我点击eclipse,加载屏幕只会闪烁并消失,然后出现一条消息,告诉我检查