我通过设置此参数创建了一个无头webdriver chrome浏览器:
driver = webdriver.Chrome(executable_path=os.path.abspath("chromedriver"), chrome_options=chrome_options)
然后使用以下命令打开浏览器:
chrome_options.arguments.remove("--headless")
一旦满足条件,是否可以使浏览器出现?我尝试使用以下方法再次删除该属性:
<form name="myForm" novalidate >
<input type="text" name="title" [(ngModel)]="question.title" ng-required="true" /><br>
<input type="text" name="desc" [(ngModel)]="question.desc" ng-required="true" /> <br>
<input type="button" (click)="PostQuestion()" ng-disabled="!myForm.title.$valid" name="submit" value="Post question" /> </form>
但这没有做任何事情。
答案 0 :(得分:1)
通过设置以下内容来启动--headless
google-chrome实例:
chrome_options.add_argument("--headless")
此外,将不可能在同一会话中再次显示浏览上下文。
在启动新的 Chrome浏览器会话的过程中,使用ChromeOptions()
配置ChromeDriver来启动headless时,配置会被烘焙 strong>放入 chromedriver 可执行文件,并将一直保留到 WebDriver 的生存期,并保持不可编辑。因此,您可以修改当前正在执行的 WebDriver 实例的 ChromeOptions 。
即使您能够提取 ChromeDriver 和 ChromeSession 属性,例如来自已启动的 ChromeDriver 和 Chrome浏览器会话的会话ID ,
一种更清洁的方法是在driver.quit()
方法中调用 tearDown(){}
来关闭并销毁当前的< em> ChromeDriver 和 Chrome浏览器实例,然后跨一组新的 ChromeDriver 和 Chrome浏览器实例以及一组新的配置。
您可以在以下位置找到一些相关的讨论
答案 1 :(得分:0)
当您将--headless参数传递给chrome时,它实际上是将实例创建为无头,而不是创建窗口并隐藏它,如果要在条件满足时显示实例,则必须考虑不使用--headless在chrome params。
答案 2 :(得分:0)
在会话开始后,您无法从Selenium会话中删除选项/参数。每个Selenium会话都使用唯一的会话ID创建,并使用传递给它的参数运行,直到被询问.quit()
。如果您在启动时将--headless
选项传递给它,则无法观看您的Chrome会话。