selenium chrome设置为全屏 self.options.add_argument()
时间: 2024-11-13 21:22:34 浏览: 7
在Selenium中,如果你想让Chrome浏览器以全屏模式运行,你可以使用`add_argument()`方法添加特定的命令行参数。对于全屏模式,你需要传递`"--kiosk"`选项。以下是如何设置的示例:
```python
from selenium import webdriver
# 创建一个新的ChromeOptions对象
chrome_options = webdriver.ChromeOptions()
# 添加全屏模式参数
chrome_options.add_argument('--kiosk')
# 如果你想要进一步禁用提示和其他非全屏相关的功能,可以加上这些参数
chrome_options.add_experimental_option("excludeSwitches", ["disable-infobars"])
chrome_options.add_argument("--disable-notifications")
# 使用ChromeOptions创建一个新的Chrome驱动实例
driver = webdriver.Chrome(chrome_options=chrome_options)
# 现在,driver已经以全屏模式启动
driver.maximize_window() # 可选,如果需要最大化窗口,尽管maximize_window在kiosk模式下可能会有差异
# ...然后进行你的自动化测试操作
相关问题
selenium chrome self.options.add_argument("--kiosk")
Selenium是一个自动化测试工具,用于浏览器操作,特别是Web应用的集成和回归测试。当你在使用Selenium与Chrome浏览器配合时,`self.options.add_argument("--kiosk")`这一行代码的作用是在启动Chrome时添加一个命令行标志。
`--kiosk`是一个特殊的标志,当它被加入到Chrome的启动参数中时,会让浏览器进入全屏模式并禁用所有非必要的功能,如菜单栏、工具栏和窗口调整等,通常用于创建一种类似于自助服务终端(Kiosk Mode)的体验。在这种模式下,用户只能浏览指定的网页,而无法访问其他功能或退出当前页面。
如果你在编写Selenium脚本时使用了这个选项,例如在WebDriver初始化时:
```python
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--kiosk')
driver = webdriver.Chrome(chrome_options=options)
```
那么`driver`将启动一个默认打开特定页面,并锁定在全屏模式下的Chrome浏览器实例。
from PySide2.QtCore import * from PySide2.QtWidgets import * from PySide2.QtWebEngineWidgets import * from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options class TabWidget(QTabWidget): def init(self, *args, **kwargs): QTabWidget.init(self, *args, **kwargs) self.setup_browser() self.load_pages() def setup_browser(self): options = Options() options.add_argument('--ignore-certificate-errors') options.add_experimental_option('excludeSwitches', ['enable-automation']) options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument('--disable-gpu') options.add_argument('blink-settings=imagesEnabled=false') options.binary_location = './chrome-win/chrome.exe' driver_path = Service("chromedriver.exe") self.driver = webdriver.Chrome(service=driver_path, options=options) def load_pages(self): self.load_page("https://www.163.com", "网易新闻") def load_page(self, url, title): view = HtmlView(self) view.load(QUrl(url)) ix = self.addTab(view, title) self.setCurrentIndex(ix) class HtmlView(QWebEngineView): def init(self, *args, **kwargs): QWebEngineView.init(self, *args, **kwargs) self.tab = self.parent() def createWindow(self, windowType): if windowType == QWebEnginePage.WebBrowserTab: webView = HtmlView(self.tab) ix = self.tab.addTab(webView, "加载中 ...") self.tab.setCurrentIndex(ix) return webView return QWebEngineView.createWindow(self, windowType) if name == "main": import sys app = QApplication(sys.argv) main = TabWidget() main.show() sys.exit(app.exec_()),请优化这段代码
1. 将 `TabWidget` 类的构造函数名称更改为 `__init__`,以符合 Python 类的命名规范。
2. 将 `load_pages` 方法中的硬编码 URL 和标题更改为参数,以方便调用者传递不同的 URL 和标题。
3. 在 `HtmlView` 类的构造函数中,调用父类的构造函数时应传递 `self` 参数。
4. 在 `HtmlView` 类的 `createWindow` 方法中,应该将 `webView` 变量重命名为 `newView`,以避免与已经存在的 `HtmlView` 实例混淆。
5. 在 `main` 函数中,将 `TabWidget` 对象的名称更改为 `main_window`,以符合 Python 变量的命名规范。
修改后的代码如下:
```
from PySide2.QtCore import *
from PySide2.QtWidgets import *
from PySide2.QtWebEngineWidgets import *
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
class TabWidget(QTabWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setup_browser()
self.load_pages()
def setup_browser(self):
options = Options()
options.add_argument('--ignore-certificate-errors')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument('--disable-gpu')
options.add_argument('blink-settings=imagesEnabled=false')
options.binary_location = './chrome-win/chrome.exe'
driver_path = Service("chromedriver.exe")
self.driver = webdriver.Chrome(service=driver_path, options=options)
def load_pages(self):
self.load_page("https://www.163.com", "网易新闻")
def load_page(self, url, title):
view = HtmlView(self)
view.load(QUrl(url))
ix = self.addTab(view, title)
self.setCurrentIndex(ix)
class HtmlView(QWebEngineView):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.tab = self.parent()
def createWindow(self, windowType):
if windowType == QWebEnginePage.WebBrowserTab:
newView = HtmlView(self.tab)
ix = self.tab.addTab(newView, "加载中 ...")
self.tab.setCurrentIndex(ix)
return newView
return super().createWindow(windowType)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
main_window = TabWidget()
main_window.show()
sys.exit(app.exec_())
```
阅读全文