小编Dee*_*pak的帖子

如何在角度项目的jasmine测试中注入依赖项

这是测试规范文件:

describe('Test main controller', function(){
        it('Should initialize value to Loading', function(){
            $scope = {}
            ctrl =  new mainNavController($scope)
            expect($scope.wksp_name).toBe('Loading')
        })
    })
Run Code Online (Sandbox Code Playgroud)

这是控制器文件

function mainNavController($scope) {
    $scope.wksp_name = 'Loading...'
    $scope.$on('broadCastWkspNameEvent', function (e, args) {
        $scope.wksp_name = args
    })
}

mainNavController.$inject=['$scope']
Run Code Online (Sandbox Code Playgroud)

但我的测试失败了 Object #<Object> has no method '$on'

我正在使用茉莉花的基本设置.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>Jasmine Spec Runner</title>

  <link rel="shortcut icon" type="image/png" href="testlib/jasmine-1.2.0/jasmine_favicon.png">
  <link rel="stylesheet" type="text/css" href="testlib/jasmine-1.2.0/jasmine.css">
  <script type="text/javascript" src="testlib/jasmine-1.2.0/jasmine.js"></script>
  <script type="text/javascript" src="testlib/jasmine-1.2.0/jasmine-html.js"></script>

  <!-- include source files here... …
Run Code Online (Sandbox Code Playgroud)

jasmine angularjs

29
推荐指数
2
解决办法
5万
查看次数

Xunit - 在全套测试中禁用并行性

我有大约 100 个 selenium 测试要运行,但其中 2 个不能并行运行

是否可以使用 xUnit 仅对这 2 个测试禁用并行性?

(这两个测试不能并行,因为它们需要模拟键盘点击 -> 所以我会使用并行执行失去输入焦点)

我正在寻找的最佳场景:

向 2 个测试添加一些属性,这将禁用它们的并行性。然后在测试执行中,将使用 16 个线程运行 98 个测试,最后将使用 1 个线程执行剩余的两个测试。

我知道其中一种解决方案可能是这样的:

  • 为测试添加“并行”和“非并行”类别
  • 使用 xunit.console 仅运行参数 maxthread=16 的“并行”类别。
  • 之后运行参数 maxthread=1 的“NonParallel”类别
  • 毕竟,将 xunit 报告合并为一个。

但不符合我的需求,我想知道我是否可以在我在“最佳场景”中描述的场景中运行测试

PS如果没有解决方案,我可以在nunit中找到类似的东西吗?

c# selenium nunit xunit

9
推荐指数
2
解决办法
3905
查看次数

如何在 Selenium 中保存浏览器会话?

我正在使用 Selenium 登录帐户。登录后,我想保存会话并在下次运行 python 脚本时再次访问它,这样我就不必再次登录。基本上我希望 chrome 驱动程序像真正的 google chrome 一样工作,其中保存所有 cookie/会话。这样我就不必在每次运行时都登录该网站。

browser.get("https://www.website.com")
browser.find_element_by_xpath("//*[@id='identifierId']").send_keys(email)
browser.find_element_by_xpath("//*[@id='identifierNext']").click()
time.sleep(3)
browser.find_element_by_xpath("//*[@id='password']/div[1]/div/div[1]/input").send_keys(password)
browser.find_element_by_xpath("//*[@id='passwordNext']").click()
time.sleep(5)
Run Code Online (Sandbox Code Playgroud)

python cookies session selenium-webdriver

9
推荐指数
2
解决办法
3万
查看次数

使用 Java 在 Selenium WebDriver 中进行图像比较

我目前在 Selenium WebDriver 中工作,在自动化过程中比较两个图像。目前我正在使用像素比较,但如果浏览器大小发生变化或运行自动化的系统不同,就会出现问题。

我必须比较两张图片,一张是已经保存在某个位置的金色图片,另一张是自动化过程中截取的屏幕截图。截取屏幕截图后,将其与我拥有的黄金图像进行比较,并相应地断言通过或失败。如果截图时浏览器大小或系统分辨率不同,就会出现问题,因为这会影响图像的分辨率,可能与我参考的金色图像的分辨率不同。这里两个图像是相同的,但像素可能会随着浏览器大小或系统的变化而变化。

那么有没有办法在 selenium 中使用 java 比较两个图像而不使用像素比较?

java selenium image-comparison image-processing selenium-webdriver

7
推荐指数
1
解决办法
8669
查看次数

在日历日期选择器上使用 Selenium

我正在尝试从此页面上的日历中选择一个日期 (01/01/2011)。https://cotthosting.com/NYRocklandExternal/LandRecords/protected/SrchQuickName.aspx

日历是说的形式的一部分Date: FROM。当我单击它时,会弹出一个日历供您选择日期。但是,该字段还允许您输入日期。鉴于日历的复杂性,我选择使用send_keys()但它不起作用。

我已经通过其 ID 识别了空字段日期字段,但由于某种原因它没有填写表格。当我尝试:

driver.find_element_by_id('ctl00_cphMain_SrchDates1_txtFiledFrom').send_keys("01012011")
Run Code Online (Sandbox Code Playgroud)

关于如何以不同方式操纵它的任何想法?我将 Python 2.7 与 Selenium 和 ChromeDriver 一起使用

python selenium datepicker

6
推荐指数
2
解决办法
2万
查看次数

Python with Selenium:是否可以刷新框架而不是整个页面?

如果 selenium 无法刷新框架,我正在处理具有嵌套框架的网页。结构基本上是: webpage -> frame A -> frame B -> frame C我需要不断刷新帧C。我想知道硒是否可以实现这一点。据我测试,该refresh()功能会刷新整个页面。

烦人的部分是唯一可以刷新帧 C 的按钮驻留在帧 B 上,因此目前我必须执行以下循环:

while True:
    browser.switch_to_default_content()
    WebDriverWait(browser, 10).until(EC.frame_to_be_available_and_switch_to_it(("frame A")))
    WebDriverWait(browser, 10).until(EC.frame_to_be_available_and_switch_to_it(("frame B")))
    browser.find_element_by_css_selector("refresh_button").click()
    WebDriverWait(browser, 10).until(EC.frame_to_be_available_and_switch_to_it(("frame C")))
Run Code Online (Sandbox Code Playgroud)

如果硒不能刷新帧,我想知道是否有更好的方法在帧 B 和 C 之间切换?我真的不想一次又一次地转到默认内容和框架A...我觉得应该有一种方法可以保留框架B和框架C的Web元素。但我不知道该怎么做。非常感谢!

python iframe selenium

6
推荐指数
1
解决办法
866
查看次数

功能级别的任何黄瓜 Before 和 After 挂钩

我已经经历过很多帮助,但都是关于场景级别的解释。Cucumber JVM 是否有功能级别的 Before 和 After 挂钩?这个页面cucumber Hook讲述了ruby语言,但是我可以获得java的帮助吗?

java selenium rest-assured cucumber-jvm

6
推荐指数
1
解决办法
1万
查看次数

使用 MySQL 测试数据库进行 Github 操作

我有一个与在 docker 中开发的 Mysql 连接的 CodeIgniter Web 应用程序。我想在 ci/cd 管道的 GitHub 操作中进行一些单元测试。问题是有些功能需要从Mysql数据库查询数据。那么我是否可以知道是否有一种方法可以在 Github 操作上设置 MySQL 实例并运行一些 .sql 文件,以便我的测试数据位于数据库中?

mysql continuous-integration github docker

5
推荐指数
1
解决办法
8354
查看次数

如何从 MySQL 中的连接表中获取孤儿

想象有2个表,第一个是产品(产品)列表,第二个是产品和另一个表(类别)之间的连接表,称为产品类别

产品:

id   |  name
------------
1       Lorem 
2       Ipsum 
3       Dolor 
4       Sit 
Run Code Online (Sandbox Code Playgroud)

产品类别

product_id  | categories_id
---------------------------
1             3
1             6
4             1
2             2
Run Code Online (Sandbox Code Playgroud)

如何获取孤立元素,我的意思是没有类别的元素,所以在这种情况下:3,使用 MyISAM 以有效的方式(+30k 记录)?

这有点像显示所有不可连接的行,但这种语法对我来说很奇怪......

mysql sql myisam

4
推荐指数
2
解决办法
2006
查看次数

PHP中的"贪婪令牌解析"

什么是PHP中的"贪婪令牌解析"?我在Codeigniter指南中找到了这个:

"除非你需要解析变量,否则总是使用单引号字符串,并且在你需要解析变量的情况下,使用大括号来防止贪婪的令牌解析."

"我的字符串{$ foo}"

有良好解释的答案会有所帮助.

谢谢 !!

php codeigniter

3
推荐指数
1
解决办法
198
查看次数

Perl 和 Ruby 中的多行模式不同:Ruby 错了吗?

让我们看看 Perl 代码和结果:

$s = "a\nb\nc\n";
$s =~ s/^b/X/;
print $s;

a
b
c

$s = "a\nb\nc\n";
$s =~ s/^b/X/m;
print $s;

a
X
c
Run Code Online (Sandbox Code Playgroud)

我认为 Perl 是对的, ^ 仅在启用多行时才匹配中间新行之后的位置。

让我们看看红宝石:

$s = "a\nb\nc\n"
print $s.sub(/^b/,'X')

a
X
c

$s = "a\nb\nc\n"
print $s.sub(/^b/m,'X')

a
X
c
Run Code Online (Sandbox Code Playgroud)

^ 匹配文本中间换行符后的位置,无论它是否处于多行模式。

在我的一生中,我找不到定义多行选项将做什么的 Ruby 文档,它在哪里?

Ruby 也没有单行模式吗?

undefined group option: /(?s)^b/
Run Code Online (Sandbox Code Playgroud)

/^b./s 将解析但它的行为不像 Perl(。匹配新行)。

PS:我使用 Perl 5 和 Ruby 3.0 进行了测试。

ruby regex perl

1
推荐指数
1
解决办法
848
查看次数

无法在 Dockerfile 中添加 PPA ondrej\PHP

我想用 PHP 和一些 PHP 模块扩展 httpd 图像。我的 Dockerfile 看起来像这样。

\n
FROM httpd:2.4                                 \n                                           \nCOPY forma.conf /etc/apache2/sites-available/  \n                                           \nRUN apt-get update && apt-get install -y \\     \n    nano \\                                     \n    software-properties-common   \n\nRUN LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php           \n                                                                                          \nRUN apt-get -y update && apt-get install -y \\  \n    php7.2 \\                               \n    libapache2-mod-php7.2 \\                \n    php7.2-common \\                        \n    php7.2-mysql \\                         \n    php7.2-gmp \\                           \n    php7.2-ldap \\                          \n    php7.2-curl \\                          \n    php7.2-intl \\                          \n    php7.2-mbstring \\                      \n    php7.2-xmlrpc \\                        \n    php7.2-gd \\                            \n    php7.2-bcmath \\ …
Run Code Online (Sandbox Code Playgroud)

php apache docker dockerfile

1
推荐指数
1
解决办法
9092
查看次数