我正在开发一个AngularJS应用程序,我喜欢用Protractor(e2e测试)测试它.我正在遵循这个优秀的指南,但我被困在第5步(下载并启动selenium服务器),因为在古巴生活,当我尝试安装Selenium服务器时,我得到403错误(这是出于政治问题,到不详细说明).
问题是如何手动或以其他方式安装它.问候,希望有人可以帮助我.
编辑:
当我跑步时,node_modules/protractor/bin/webdriver-manager update我得到(相关部分):
downloading https://chromedriver.storage.googleapis.com/2.14/chromedriver_linux64.zip...
Error: Got code 403 from https://selenium-release.storage.googleapis.com/2.45/selenium-server-standalone-2.45.0.jar
selenium-server-standalone-2.45.0.jar downloaded to /webapps/webvisor/client/node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar
Error: Got code 403 from https://chromedriver.storage.googleapis.com/2.14/chromedriver_linux64.zip
chromedriver_2.14.zip downloaded to /webapps/webvisor/client/node_modules/protractor/selenium/chromedriver_2.14.zip
Run Code Online (Sandbox Code Playgroud) 我正在使用Android studio 1.2.2.我已经集成了地图4工作sdk,在此之后构建失败,我们在我们的项目中使用google play services lib(仅使用com.google.android.gms.tagmanager.*).现在,在集成googlemaps_sdk_m4b_lib之后,构建不会生成.在此之前
试图寻找仅包含google_play_services_lib的tagmanager片段,但不能作为依赖项使用.
构建失败,具体如下:
:nFarmers:dexDebug AGPBI:{"kind":"SIMPLE","text":"意外的顶级错误:","位置":{},"原始":"意外的顶层错误:"} AGPBI: {"kind":"SIMPLE","text":"java.lang.OutOfMemoryError:超出GC开销限制","position":{},"original":"java.lang.OutOfMemoryError:超出GC开销限制"} AGPBI:{"kind":"SIMPLE","text":"\ tat com.android.dx.cf.cst.ConstantPoolParser.parseUtf8(ConstantPoolParser.java:371)","position":{},"original" :"\ tat com.android.dx.cf.cst.ConstantPoolParser.parseUtf8(ConstantPoolParser.java:371)"} AGPBI:{"kind":"SIMPLE","text":"\ tat com.android.dx. cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:262)","position":{},"original":"\ tat com.android.dx.cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:262) "} AGPBI:{"kind":"SIMPLE","text":"\ tat com.android.dx.cf.cst.ConstantPoolParser.parse(ConstantPoolParser.java:150)","position":{},"原始":"\ tat com.android.dx.cf.cst.ConstantPoolParser.parse(ConstantPoolParser.java:150)"} AGPBI:{"kind" :"SIMPLE","text":"\ tat com.android.dx.cf.cst.ConstantPoolParser.parseIfNecessary(ConstantPoolParser.java:124)","position":{},"original":"\ tat com. android.dx.cf.cst.ConstantPoolParser.parseIfNecessary(ConstantPoolParser.java:124)"} AGPBI:{"kind":"SIMPLE","text":"\ tat com.android.dx.cf.cst.ConstantPoolParser. getPool(ConstantPoolParser.java:115)","position":{},"original":"\ tat com.android.dx.cf.cst.ConstantPoolParser.getPool(ConstantPoolParser.java:115)"} AGPBI:{" kind":"SIMPLE","text":"\ tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:482)","position":{},"original":"\ tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:482)"} AGPBI:{"kind":"SIMPLE","text":"\ tat com.android.dx.cf.direct. DirectClassFile.parse(DirectClassFile.java:406)","position":{},"original":"\ tat com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)"} AGPBI: {"kind":"SIMPLE","text":"\ tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary (DirectClassFile.java:388)","position":{},"original":"tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)"} AGPBI:{"kind ":"SIMPLE","text":"\ tat com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)","position":{},"original":"\ tat com .android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)"} AGPBI:{"kind":"SIMPLE","text":"\ tat com.android.dx.command.dexer.Main .parseClass(Main.java:764)","position":{},"original":"\ tat com.android.dx.command.dexer.Main.parseClass(Main.java:764)"} AGPBI:{ "kind":"SIMPLE","text":"\ tat com.android.dx.command.dexer.Main.access $ 1500(Main.java:85)","position":{},"original":"\tat …
var div_raw_id = 'acf-download-link';
var div_id = '#' + div_raw_id;
var chapter_index = 1;
var chapter = 'chapter-' + chapter_index;
$('button[name=addnewchapter]').click(function(chapter, div_id ,div_raw_id){
$(div_id).append('<div class="acf-input-wrap"><input id="' + div_raw_id +'" class="text" name="fields[field_55951fb44c1d6][' + chapter + '][]" value="" placeholder="" type="text"><span class="remove_btn"></span></div>');
return false;
});
Run Code Online (Sandbox Code Playgroud)
问题是我无法将div_id, chapter_index,chapter作为参数传递给单击事件内的匿名函数。我使用了调试器,调试器将它们表示为未定义的值,即使它们是在上面的代码中定义的。似乎存在变量范围问题,但是,我无法找出任何其他方法将定义的变量作为参数传递给单击事件内的匿名函数。
我如何创建一个模式,用户可以在表格中编辑所选行的内容?有人可以教我如何做到这一点?我在Web开发方面有点新意,我只需要这样做.谢谢!
这是我的代码(HTML):
<div class="row">
<div class="col-xs-12 col-md-12">
<table class="table table-condensed table-hover table-bordered">
<thead>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Doe</td>
</tr>
<tr>
<td>Sam</td>
<td>Smith</td>
</tr>
</tbody>
</table>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 我正在寻找创建文本标题,在文本后面有一行来填充容器的整个宽度,如下例所示:
例:
实际的文本本身周围会有一个白框,以阻挡线条.
.divider-text {
height: 1px;
width: 100%;
display: inline;
overflow: hidden;
background-color: #e5e5e5;
}
Run Code Online (Sandbox Code Playgroud)
这里的代码用#e5e5e5颜色填充整个文本容器.
jquery ×2
android ×1
angularjs ×1
css ×1
e2e-testing ×1
function ×1
gradle ×1
javascript ×1
protractor ×1
selenium ×1