我有一个运行许多测试的selenium测试套件,在每个新测试中,它打开了我打开的任何其他窗口顶部的浏览器窗口.在当地环境中工作时非常震动.有什么办法告诉selenium或操作系统(MAC)在后台打开窗口?
不幸的是,我需要迭代页面的所有DOM元素,我想知道最有效的技术是什么.我可以自己对这些进行基准测试,如果我有时间可能,但我希望有人已经经历过这个或有一些我没有考虑的选择.
目前我正在使用jQuery并执行此操作:
$('body *').each(function(){
var $this = $(this);
//do stuff
});
Run Code Online (Sandbox Code Playgroud)
虽然它有效,但它似乎会导致客户端出现一些延迟.它也可以用更具体的jQuery上下文进行调整,比如$('body', '*')
我发现本机javascript通常比jQuery更快,我发现了这一点.
var items = document.getElementsByTagName("*");
for (var i = 0; i < items.length; i++) {
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
我假设本机选项更快.想知道是否有其他选择我没有考虑过.也许是一个递归选项,可以并行迭代子节点.
我试图为我在1到60之间选择的每一行生成一个随机整数作为计时器.
SELECT downloads.date, products.*, (FLOOR(1 + RAND() * 60)) AS timer
Run Code Online (Sandbox Code Playgroud)
我已经搜索并继续使用FLOOR函数作为如何选择范围内的随机整数.这给了我每一行1.我错过了什么?
我在mysql 5.0.75上
继续查询的其余部分我相信它可能是一个嵌套问题
SELECT *
FROM (
SELECT downloads.date, products.*, FLOOR(1 + (RAND() * 60)) AS randomtimer,
(
SELECT COUNT( * )
FROM distros
WHERE distros.product_id = products.product_id
) AS distro_count,
(SELECT COUNT(*) FROM downloads WHERE downloads.product_id = products.product_id) AS true_downloads
FROM downloads
INNER JOIN products ON downloads.product_id = downloads.product_id
) AS count_table
WHERE count_table.distro_count > 0
AND count_table.active = 1
ORDER BY count_table.randomtimer , count_table.date DESC LIMIT …
Run Code Online (Sandbox Code Playgroud) 我对站点文档进行了一些ajax调用,根据ajax状态显示或隐藏进度条
$(document).ajaxStart(function(){
$('#ajaxProgress').show();
});
$(document).ajaxStop(function(){
$('#ajaxProgress').hide();
});
Run Code Online (Sandbox Code Playgroud)
我想基本上在网站的其他部分覆盖这些方法,在这些部分上进行了很多快速的小型ajax调用,并且不需要进出弹出的进度条.我试图将它们附加到其他$ .getJSON和$ .ajax调用中或插入它们.我试过把它们链接起来,但显然这并不好.
$.getJSON().ajaxStart(function(){ 'kill preloader'});
Run Code Online (Sandbox Code Playgroud) 我想在我的本地计算机上上传图像以进行开发,但是将它们存储在我的Amazon S3帐户上以进行生产.
upload.rb
if Rails.env.development?
has_attached_file :photo, :styles => { :thumb => '40x40#', :medium => '150x200>', :large => '300x300>'},
:convert_options => { :thumb => "-quality 92", :medium => "-quality 92", :large => "-quality 92" },
:processors => [:cropper]
else
has_attached_file :photo, :styles => { :thumb => '40x40#', :medium => '150x200>', :large => '300x300>'},
:convert_options => { :thumb => "-quality 92", :medium => "-quality 92", :large => "-quality 92" },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => ":attachment/:id/:style.:extension",
:bucket => …
Run Code Online (Sandbox Code Playgroud) 我有一个ActiveRecord模型,PricePackage.这有一个before_create回调.此回调使用第三方API进行远程连接.我正在使用工厂女孩,并希望将这个api存根,以便在测试期间建立新工厂时不会进行远程调用.
我正在使用Rspec进行模拟和存根.我遇到的问题是我的工厂中没有Rspec方法.rb
模型:
class PricePackage < ActiveRecord::Base
has_many :users
before_create :register_with_3rdparty
attr_accessible :price, :price_in_dollars, :price_in_cents, :title
def register_with_3rdparty
return true if self.price.nil?
begin
3rdPartyClass::Plan.create(
:amount => self.price_in_cents,
:interval => 'month',
:name => "#{::Rails.env} Item #{self.title}",
:currency => 'usd',
:id => self.title)
rescue Exception => ex
puts "stripe exception #{self.title} #{ex}, using existing price"
plan = 3rdPartyClass::Plan.retrieve(self.title)
self.price_in_cents = plan.amount
return true
end
end
Run Code Online (Sandbox Code Playgroud)
厂:
#PricePackage
Factory.define :price_package do |f|
f.title "test_package"
f.price_in_cents "500"
f.max_domains "20"
f.max_users "4"
f.max_apps "10"
f.after_build …
Run Code Online (Sandbox Code Playgroud) activerecord mocking rspec-rails ruby-on-rails-3 factory-bot
我正在寻找关于事件和ui对象的jQuery可选事件的信息:"选择"和"开始"作为参数.我在文档中找不到这个并且通过属性循环没有帮助.
$('#content_td_account').selectable({
filter: 'li:not(".non_draggable")',
selecting: function(event, ui) {
}
});
Run Code Online (Sandbox Code Playgroud)
具体来说,我想找到正在选择的元素并检查它们以查看它们的父元素是否相同.我假设这将在ui对象的某些地方.
我有一个大文件,有许多分散的文件路径,看起来像
lolsed_bulsh.png
Run Code Online (Sandbox Code Playgroud)
我想在扩展路径前添加这些文件名,如:
/full/path/lolsed_bullsh.png
Run Code Online (Sandbox Code Playgroud)
我很难匹配和捕捉这些.目前我正在尝试各种变化:
cat myfile.txt| sed s/\(.+\)\.png/\/full\/path\/\1/g | ack /full/path
Run Code Online (Sandbox Code Playgroud)
我认为sed有一些正则表达式或捕获组行为我不理解
我正在将一个功能性 mixin 项目从 javascript 迁移到 typescript。我所有的 javascript minxins 都有带有单个参数的构造函数签名constructor(props){}
。
在打字稿中,我按照https://www.typescriptlang.org/docs/handbook/mixins.html的官方文档定义了 mixin 构造函数类型 :
export type ConstrainedMixin<T = {}> = new (...args: any[]) => T;
Run Code Online (Sandbox Code Playgroud)
即使我将该 mixin 签名更改为:
export type ConstrainedMixin<T = {}> = new (props: any) => T;
Run Code Online (Sandbox Code Playgroud)
并更新实现 TSC 将抛出错误:
TS2545:mixin 类必须具有一个带有“any[]”类型的单个剩余参数的构造函数。
不幸的是,它无法为传递给构造函数的参数创建唯一的类型签名。我现在还需要迁移所有现有的构造函数。如何为 mixin 构造函数创建更明确的类型接口?
我创建了一个游乐场示例
您可以在此屏幕截图中看到编译器在 MIXIN 定义上出现错误,并表示 mixin 类必须具有单个剩余参数。即使类型定义是:
type ConstrainedMixin<T = {}> = new (props: any) => T;
Run Code Online (Sandbox Code Playgroud)
在我的示例中,const mg = new MixedGeneric({cool: 'bro'});
我想为该{cool: 'bro'}
对象创建一个接口,并从 mixin 定义中强制执行它。我不确定如何正确执行此操作。如果构造函数是 …
我有2个工厂.Beta_user和Beta_invite.基本上在Beta_user可以有效保存之前,我必须创建一个Beta_invite条目.不幸的是,这些模型没有干净的关联,但它们共享一个电子邮件字段.
Factory.sequence :email do |n|
"email#{n}@factory.com"
end
#BetaInvite
Factory.define :beta_invite do |f|
f.email {Factory.next(:email)}
f.approved false
f.source "web"
end
#User
Factory.define :user do |f|
f.email {Factory.next(:email)}
f.password "password"
end
#User => BetaUser
Factory.define :beta_user, :parent => :user do |f|
f.after_build do |user|
if BetaInvite.find_by_email(user.email).nil?
Factory(:beta_invite, :email => user.email)
end
end
end
Run Code Online (Sandbox Code Playgroud)
所以在beta beta_user工厂中我试图使用after_build回调来创建beta_invite工厂.
然而,它似乎是异步或其他东西.可能会执行find_by_email获取?
如果我试试这个:
Factory(:beta_user)
Factory(:beta_user)
Factory(:beta_user)
Run Code Online (Sandbox Code Playgroud)
我得到一个失败声明,没有用户发送电子邮件的beta_invite记录.
如果相反,我尝试:
Factory.build(:beta_user).save
Factory.build(:beta_user).save
Factory.build(:beta_user).save
Run Code Online (Sandbox Code Playgroud)
我得到了更好的结果.好像调用.build方法并等待保存允许创建beta_invite工厂的时间.而不是直接调用Factory.create.文档说,在调用Factory.create的情况下,调用after_build和after_create回调.
任何帮助深表感谢.
更新:
因此,我使用的用户模型会before_validation
调用检查是否存在测试版邀请的方法.如果我移动此方法调用before_save
.它工作正常.有什么我在看的东西.factory_girl何时运行after_build
与after_create
活动记录相关的回调before_validation
和before_save
?
jquery ×3
activerecord ×2
factory-bot ×2
javascript ×2
ajax ×1
bash ×1
dom ×1
jquery-ui ×1
mocking ×1
mysql ×1
optimization ×1
paperclip ×1
performance ×1
preloader ×1
progress-bar ×1
random ×1
regex ×1
rspec ×1
rspec-rails ×1
sed ×1
typescript ×1
webdriver ×1
webpack ×1