(不相关的背景信息:我的笔记本电脑被偷了,我正在做这件事,这样如果再发生这种事,我有机会找回它)
问题是:
因此,我正在尝试运行一个python脚本,它将(秘密地)截图当前的地理位置,如下所示: https://gps-coordinates.org/my-location.php
它没有headless选项非常好用,但是有了它,位置就不能加载了。我的怀疑是无头模式不允许弹出窗口或警报,因此chrome无法“记住”我总是允许位置的选择。在
我已经看了源代码,位置信息出现在“传单弹出内容”类下
我所做的:
我已经尝试过使用wait-for元素
具体如下:
def waitForLoad(browser):
try:
WebDriverWait(browser, 10, ignored_exceptions=[
NoSuchElementException, TimeoutException
]).until(EC.presence_of_element_located((By.CLASS_NAME,'leaflet-popup-content')))
except TimeoutException:
print("Error, timed out, trying again")
browser.refresh()
waitForLoad(browser)
return
我也用firefox驱动程序(geckodriver)尝试过这个功能,但是在设置headless之前它甚至不能工作
代码:
^{pr2}$预期的输出是一个.png文件,其中选择了当前位置,如果运行此文件,但注释掉了“--headless”行(第6行)。(同时假设该网站在允许位置方面是“白名单”)
找到周围的训练
我已经想好了。事实上这和我尝试的完全不同。所以我在试验virtualdisplay,这是在selenium中无头模式出现之前的一个老解决方案。我发现我可以使用pyvirtualdisplay并将visibility设置为0代码是完全相同的,但我将它夹在以下行之间:
有趣的是,我不确定无头模式和可视性设置为0的虚拟显示有什么不同,但至少它有我想要的效果
相关问题 更多 >
编程相关推荐