在使用Selenium运行自动测试用例时,是否有方法捕获浏览器日志?我发现了一篇关于如何在Selenium中捕获JavaScript错误的文章。但这只适用于Firefox,也只适用于错误。我想获取所有控制台日志。
作为非java selenium用户,以下是与Margus的答案相当的python:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class ChromeConsoleLogging(object):
def __init__(self, ):
self.driver = None
def setUp(self, ):
desired = DesiredCapabilities.CHROME
desired ['loggingPrefs'] = { 'browser':'ALL' }
self.driver = webdriver.Chrome(desired_capabilities=desired)
def analyzeLog(self, ):
data = self.driver.get_log('browser')
print(data)
def testMethod(self, ):
self.setUp()
self.driver.get("http://mypage.com")
self.analyzeLog()
参考文献
编辑:将Python答案保留在这个线程中,因为它与Java答案非常相似,而这篇文章是在Google搜索类似Python问题时返回的
用更简洁的方式,你可以做到:
LogEntries logs = driver.manage().logs().get(LogType.BROWSER);
对我来说,它在控制台中捕捉JS错误的效果非常好。然后,您可以为其大小添加一些验证。例如,如果是
我认为这是以下几点:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.logging.LogEntries;
import org.openqa.selenium.logging.LogEntry;
import org.openqa.selenium.logging.LogType;
import org.openqa.selenium.logging.LoggingPreferences;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class ChromeConsoleLogging {
private WebDriver driver;
@BeforeMethod
public void setUp() {
System.setProperty("webdriver.chrome.driver", "c:\\path\\to\\chromedriver.exe");
DesiredCapabilities caps = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
driver = new ChromeDriver(caps);
}
@AfterMethod
public void tearDown() {
driver.quit();
}
public void analyzeLog() {
LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER);
for (LogEntry entry : logEntries) {
System.out.println(new Date(entry.getTimestamp()) + " " + entry.getLevel() + " " + entry.getMessage());
//do something useful with the data
}
}
@Test
public void testMethod() {
driver.get("http://mypage.com");
//do something on page
analyzeLog();
}
}
来源:获取chrome的控制台日志
问题内容: 在使用Selenium运行自动测试用例时,是否可以捕获浏览器日志?我找到了一篇有关如何捕获Selenium中的JavaScript错误的文章。但这仅适用于Firefox,仅适用于错误。我想获取所有控制台日志。 问题答案: 我认为这是符合以下条件的:
问题内容: 有没有一种方法可以使用selenium捕获c#中的浏览器日志。 我正在寻找捕获出现在特定页面上的所有JS错误。在Chrome或Firefox上更可取。 我以前在Python中完成过此操作,但是可以在C#中完成吗? 问题答案: 要使用Selenium / Chrome / C#设置和检索日志条目,请执行以下操作: 对于Firefox:
问题内容: 我的用户希望能够点击+ 来保存表格。有没有一种跨浏览器的好方法来捕获+ 组合键并提交我的表格? 应用程序基于Drupal构建,因此可以使用jQuery。 问题答案: 各个浏览器的键码可能不同,因此您可能需要检查的字符数不止115个。
问题内容: 当用户更改页面缩放时,是否可以使用JavaScript检测?我只是想捕获一个“缩放”事件并对其进行响应(类似于window.onresize事件)。 谢谢。 问题答案: 无法主动检测是否有变焦。我在这里找到了如何尝试实现它的好方法。 我发现了两种检测缩放级别的方法。检测缩放级别变化的一种方法取决于不缩放百分比值的事实。百分比值是相对于视口宽度的,因此不受页面缩放的影响。如果您插入两个元
问题内容: 是否可以捕获这些快捷方式? + + + 我试过了,但是没有用: 当我按下它时,它会显示在控制台中,但是如果按下+,它什么都不会显示,并打开一个新选项卡。 我想捕获这些快捷方式并阻止任何浏览器操作。 问题答案: 样例代码: Firefox (已测试6.0.1) 在Firefox中,两个事件侦听器均有效。如果按或键组合,则将在控制台上同时显示两条消息,并且浏览器不会打开选项卡,也不会要求保
问题内容: 我想捕获浏览器窗口/选项卡关闭事件。我已经尝试使用jQuery以下内容: 但这也适用于表单提交,这不是我想要的。我想要一个仅在用户关闭窗口时才触发的事件。 问题答案: 每当用户出于任何原因离开您的页面时,都会触发该事件。 例如,如果用户提交表单,单击链接,关闭窗口(或选项卡)或使用地址栏,搜索框或书签进入新页面,则将触发该事件。 您可以使用以下代码排除表单提交和超链接(其他框架除外):