大佬教程收集整理的这篇文章主要介绍了Selenium Firefox无头返回不同结果,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
理想情况下,使用和不使用firefox_options.headless =
True
不会对要渲染的DOM树中的元素产生任何重大影响,但就视口而言,可能会有重大不同。
作为一个例子,当GeckoDriver / firefox是与沿着初始化 选项的默认 视口 是 其中当GeckoDriver / firefox是没有初始化--headless
选项的默认 视口
是 。
示例代码:
from SELEnium import webdriver
from SELEnium.webdriver.support.ui import webdriverwait from SELEnium.webdriver.common.by import By from SELEnium.webdriver.support import expected_conditions as EC
options = webdriver.firefoxOptions() options.headless = True driver = webdriver.firefox(options=options, executable_path=r’C:\Utility\browserDrivers\geckodriver.exe’) driver.get("https://www.google.com/”) webdriverwait(driver, 10).until(EC.element_to_be_clickable((By.name, “q”))) print (“headless firefox Initialized”) size = driver.get_window_size() print(“Window size: wIDth = {}px, height = {}px”.format(size[“wIDth”], size[“height”])) driver.quit() driver = webdriver.firefox(executable_path=r’C:\Utility\browserDrivers\geckodriver.exe’) driver.get("https://www.google.com/”) webdriverwait(driver, 10).until(EC.element_to_be_clickable((By.name, “q”))) print (“firefox Initialized”) size = driver.get_window_size() print(“Window size: wIDth = {}px, height = {}px”.format(size[“wIDth”], size[“height”])) driver.quit()
控制台输出:
headless firefox Initialized
Window size: wIDth = 1366px, height = 768px firefox Initialized Window size: wIDth = 1382px, height = 744px
从上面的观察中可以推断出,使用--headless
选项GeckoDriver / firefox打开了具有减小的 视口 的 浏览上下文
,因此标识的元素数量可以 *
在使用GeckoDriver / firefox启动 浏览上下文时,请 始终以
模式打开或通过set_window_size()
以下方式进行配置:
from SELEnium import webdriver
from SELEnium.webdriver.support.ui import webdriverwait
from SELEnium.webdriver.common.by import By
from SELEnium.webdriver.support import expected_conditions as EC
options = webdriver.firefoxOptions()
options.headless = True
#options.add_argument("start-maximized")
options.add_argument("window-size=1400,600")
driver = webdriver.firefox(options=options, executable_path=r'C:\Utility\browserDrivers\geckodriver.exe')
driver.get("https://www.Google.com/")
driver.set_window_size(1920, 1080)
当我抓取包含使用无头选项产品的页面时,我得到不同的结果。
对于同一个问题,一次我得到未排序的结果,而另一次我得到正确的排序顺序。
SELEnium firefox浏览器:
firefox_options = Options()
firefox_options.headless = True
browser = webdriver.Firefox(options=firefox_options,executable_path=firefox_driver)
@H_674_74@更新:
事实证明,广告弹出窗口隐藏了价格排序菜单。通过设置DebanjanB发布的恒定窗口大小,解决了问题。
感谢您的任何建议
以上是大佬教程为你收集整理的Selenium Firefox无头返回不同结果全部内容,希望文章能够帮你解决Selenium Firefox无头返回不同结果所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。