[英]Python Selenium PhantomJS - After disabling Javascript I can't click on anything or get any element
我需要帮助。 在PhantomJS Web驱动程序上禁用Javascript后,我无法使用browser.find_element_by_id或任何类似方法来获取或单击任何元素。
这是我设置幻影的方法:
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”,“内容长度 “:” 96" , “内容类型”: “应用/ JSON;字符集= UTF-8”, “主机”:“127.0.0.1:52780","User-Agent":"Python-urllib/ 3.5“},” httpVersion“:” 1.1“,” method“:” POST“,” post“:” {\\“ value \\”:\\“ c_btnPriceRange \\”,\\“ using \\”:\\“ id \\”, \\“ sessionId \\”:\\“ 871daac0-147f-11e7-bfdf-4dce0d86731e \\”}“,” url“:” / element“,” urlParsed“:{” anchor“:”“,” query“:”“, “文件”: “元件”, “目录”: “/”, “路径”: “/元件”, “相对的”: “/元件”, “端口”: “”, “宿主”: “”,“密码“:” “ ”用户“: ”“, ”用户信息“: ”“, ”权威“: ”“, ”协议“: ”“, ”源“: ”/元件“, ”queryKey“:{},” chunks“:[” element“]},” urlOriginal“:” / session / 871daac0-147f-11e7-bfdf-4dce0d86731e / element“}}截图:可通过屏幕查看
我尝试了显式等待该元素,但它不起作用,当我打印网页内容时,我获得了包含元素的完整HTML代码。 禁用JavaScript是否会使Selenium无法运行命令或其他内容?
我真的需要帮助。
谢谢
PhantomJS Web驱动程序也存在NoSuchElementException问题。 我的修正是基于
Python / Selenium / PhantomJS-执行之间保留的数据
被添加
browser.implicitly_wait(10)
browser.set_window_size(1120, 550)
之前
browser.find_element_by_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.