Selenium 在生产中仅在无头模式下工作是真的吗? (姜戈)
Is it true that Selenium works only in headless mode in production? (Django)
我有一个 Django 视图函数:
def bypass_link(request, pk=None):
instance = fields.objects.get(pk=pk)
link = instance.quote
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
driver.get(link)
driver.find_element_by_id("butAgree").click()
return redirect(link)
模板:
<td data-label="Quote">
<a href="{% url 'bypass_link' i.id %}" target="_blank">{{ i.link }}</a>
</td>
urls.py
from django.conf.urls import url
url(r'^bypass_link/(?P<pk>\d+)/$', views.bypass_link, name="bypass_link"),
当我点击超链接时,这会打开两个链接。当我删除 return redirect(link)
时,这会在页面上显示错误,但 selenium window 工作正常。
我只想在单击超链接时打开 selenium window。
编辑:
我将线路更改为 return redirect(index)
,这在本地有效。但是当我在生产中尝试这个时,这显示了一个错误。如果我在无头模式下 运行 硒,这个错误就解决了。但是,我不想 运行 在生产中处于无头模式。 Selenium 在生产中仅在无头模式下工作是真的吗?
Headless 软件(例如“headless Java”或“headless Linux”)是能够在没有图形用户界面的设备上运行的软件。 ...当普通版本的程序需要图形卡或类似的图形界面设备时,最常使用术语“无头”。
https://en.wikipedia.org/wiki/Headless_software
如果您所说的“生产”是指像 VPS 之类的远程服务器,那么您可能不能 运行 服务器上的图形 Web 浏览器,它必须是无头的。
解决方案
检查问题是否对所有 links 都存在,给出一个简单的 link 比如 google.com
有时,对于
的网站,问题可能仍然存在
- 错误的证书可以通过
--ignore-certificate-errors
解决
- 可以使用
--enable-features=NetworkService
解析自签名证书
或者,您可以选择不在生产环境中使用无头浏览器,而是使用 browserstack 或 saucelabs。基于云的连续测试平台,最适合跨浏览器和跨平台测试
您可以在任何类型的环境中使用 selenium headless 模式,它是自动化中的可配置功能之一。
我有一个 Django 视图函数:
def bypass_link(request, pk=None):
instance = fields.objects.get(pk=pk)
link = instance.quote
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
driver.get(link)
driver.find_element_by_id("butAgree").click()
return redirect(link)
模板:
<td data-label="Quote">
<a href="{% url 'bypass_link' i.id %}" target="_blank">{{ i.link }}</a>
</td>
urls.py
from django.conf.urls import url
url(r'^bypass_link/(?P<pk>\d+)/$', views.bypass_link, name="bypass_link"),
当我点击超链接时,这会打开两个链接。当我删除 return redirect(link)
时,这会在页面上显示错误,但 selenium window 工作正常。
我只想在单击超链接时打开 selenium window。
编辑:
我将线路更改为 return redirect(index)
,这在本地有效。但是当我在生产中尝试这个时,这显示了一个错误。如果我在无头模式下 运行 硒,这个错误就解决了。但是,我不想 运行 在生产中处于无头模式。 Selenium 在生产中仅在无头模式下工作是真的吗?
Headless 软件(例如“headless Java”或“headless Linux”)是能够在没有图形用户界面的设备上运行的软件。 ...当普通版本的程序需要图形卡或类似的图形界面设备时,最常使用术语“无头”。
https://en.wikipedia.org/wiki/Headless_software
如果您所说的“生产”是指像 VPS 之类的远程服务器,那么您可能不能 运行 服务器上的图形 Web 浏览器,它必须是无头的。
解决方案 检查问题是否对所有 links 都存在,给出一个简单的 link 比如 google.com 有时,对于
的网站,问题可能仍然存在- 错误的证书可以通过
--ignore-certificate-errors
解决
- 可以使用
--enable-features=NetworkService
解析自签名证书
或者,您可以选择不在生产环境中使用无头浏览器,而是使用 browserstack 或 saucelabs。基于云的连续测试平台,最适合跨浏览器和跨平台测试
您可以在任何类型的环境中使用 selenium headless 模式,它是自动化中的可配置功能之一。