Java 如何在Selenium中读取Web浏览器控制台?
我使用的是Selenium版本2.46.0。 为了调试不同的问题(例如客户端问题),我希望获得所有web浏览器控制台内容(错误、警告…) 我尝试使用:Java 如何在Selenium中读取Web浏览器控制台?,java,selenium,selenium-webdriver,selenium-chromedriver,Java,Selenium,Selenium Webdriver,Selenium Chromedriver,我使用的是Selenium版本2.46.0。 为了调试不同的问题(例如客户端问题),我希望获得所有web浏览器控制台内容(错误、警告…) 我尝试使用: LogEntries logs1 = DefaultDriver.getWebDriver().manage().logs().get("client"); 但是得到了空的日志条目 顺便说一句,我定义了以下功能: capabilities = DesiredCapabilities.firefox(); LoggingPreferences l
LogEntries logs1 = DefaultDriver.getWebDriver().manage().logs().get("client");
但是得到了空的日志条目
顺便说一句,我定义了以下功能:
capabilities = DesiredCapabilities.firefox();
LoggingPreferences logs = new LoggingPreferences();
logs.enable( LogType.CLIENT, Level.ALL );
capabilities.setCapability( CapabilityType.LOGGING_PREFS, logs );
webDriver = new FirefoxDriver( capabilities );
我还尝试了“驱动程序”和“浏览器”日志类型,但没有获得web控制台内容
知道怎么做吗
以下链接中的解决方案不起作用。。。
我不确定这是否有效。 但是你可以试着用下面的方法打开控制台
Actions builder=新操作(pbDriver);
builder.keyDown(Keys.CONTROL).sendKeys(Keys.F12).keyUp(Keys.CONTROL).perform()代码>
然后使用selenium与控制台交互
或者
通过从用户数据目录“手动”获取日志,您可以尝试一种不那么优雅的解决方案:
将用户数据目录设置为固定位置:
options=new ChromeOptions();
能力=DesiredCapabilities.chrome();
options.addArguments(“用户数据目录=/your_路径/”);
能力。设置能力(ChromeOptions.CAPABILITY,选项)代码>
从位于上面输入的路径中的日志文件chrome_debug.log获取文本
编辑:
实际上,我尝试了问题中提到的方法,它对我有效。我使用的浏览器是Chrome。正如我所指出的,我使用了.enable(LogType.BROWSER)来获取日志。
下面的代码将打印整个运行期间捕获的所有日志
LogEntries-LogEntries=pbDriver.manage().logs().get(“浏览器”);
用于(日志条目:日志条目){
System.out.println(entry.getMessage());
我刚刚了解到,由于开发人员工具不是DOM模型的一部分,因此selenium不能用于与DOM模型交互。selenium可以用来完成这项工作我不确定这是否有效。
但是你可以试着用下面的方法打开控制台
Actions builder=新操作(pbDriver);
builder.keyDown(Keys.CONTROL).sendKeys(Keys.F12).keyUp(Keys.CONTROL).perform();
然后使用selenium与控制台交互
或者
通过从用户数据目录“手动”获取日志,您可以尝试一种不那么优雅的解决方案:
将用户数据目录设置为固定位置:
options=new ChromeOptions();
能力=DesiredCapabilities.chrome();
options.addArguments(“用户数据目录=/your_路径/”);
能力。设置能力(ChromeOptions.CAPABILITY,options);
从位于上面输入的路径中的日志文件chrome_debug.log获取文本
编辑:
实际上,我尝试了问题中提到的方法,它对我很有效。我使用的浏览器是Chrome。正如我指出的,我使用了.enable(LogType.browser)来获取日志。
下面的代码将打印整个运行期间捕获的所有日志
LogEntries-LogEntries=pbDriver.manage().logs().get(“浏览器”);
用于(日志条目:日志条目){
System.out.println(entry.getMessage());
我刚刚了解到,由于开发人员工具不是DOM模型的一部分,因此无法使用selenium与之交互。可以使用selenium完成此项工作您可以尝试以下方法:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def get_logs2(driver):
# enable browser logging
#d = DesiredCapabilities.CHROME
#d['goog:loggingPrefs'] = { 'browser':'ALL' }
#driver = webdriver.Chrome(desired_capabilities=d)
# load the desired webpage
#driver.get('http://34.90.50.21/')
#driver.get(driver.current_url)
a = driver.get_log('browser')
# print messages
for entry in driver.get_log('browser'):
print(entry)
print("finished")
return a
或者选中此项:您可以尝试以下操作:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def get_logs2(driver):
# enable browser logging
#d = DesiredCapabilities.CHROME
#d['goog:loggingPrefs'] = { 'browser':'ALL' }
#driver = webdriver.Chrome(desired_capabilities=d)
# load the desired webpage
#driver.get('http://34.90.50.21/')
#driver.get(driver.current_url)
a = driver.get_log('browser')
# print messages
for entry in driver.get_log('browser'):
print(entry)
print("finished")
return a
或者检查此项:可能重复@Eugene,该链接中描述的解决方案不起作用您需要.get(LogType.BROWSER)
而不是.get(“客户端”)
。代码的功能部分很好。可能重复@Eugene,该链接中描述的解决方案不起作用您需要.get(LogType.BROWSER)
not.get(“client”)
。代码的功能部分很好。”…使用selenium与控制台交互“您可以显示此功能的工作示例吗?”…使用selenium与控制台交互“您可以显示此功能的工作示例吗?”?