小编hae*_*g87的帖子

AngularJS,如何将变量绑定到另外两个绑定变量的串联?

我是AngularJS的新手,并尝试构建一个AngularJS练习应用程序,其中,用户将连接来自多个输入的URL,即协议,域,路径,param1,param2,param3 ......等.

该应用程序将创建一个指向该网址的链接:

<a>{{protocol}}://{{domain}}{{path}}?{{param1}}&{{param2}}&{{param3}}</a>
Run Code Online (Sandbox Code Playgroud)

以上网址使用两次.一旦上href属性,以及实际文本.现在我想做的是:

<a href="{{url}}">{{url}}</a>
Run Code Online (Sandbox Code Playgroud)

但我不知道在哪里分配网址.我在下面试过,但它确实有效,但似乎不正确.

<a href='{{url = protocol+"://"+domain+path+"?"+param1+"&"+param2+"&"+param3}}'>{{url}}</a>
Run Code Online (Sandbox Code Playgroud)

假设url在应用程序中多次使用,哪里将是最合适的分配位置url

angularjs

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

GNU屏幕:如何检查当前的回滚值?

在GNU屏幕中,我知道我可以使用此命令更改回滚(缓冲区大小):

<Ctrl-a>:scrollback 10000

以及添加此行.screenrc:

defscrollback 10000

但是如何检查当前值是多少?(为了澄清,查看.screenrc文件并找到该行defscrollback不是我正在寻找的解决方案.)

谢谢!

gnu-screen

8
推荐指数
2
解决办法
974
查看次数

Selenium WebDriverJS,无法为Chrome构建webdriver

我在设置Selenium WebDriverJS时遇到了一些麻烦.我的目标是使用Javascript(节点)在Chrome浏览器上运行selenium测试.

我按照https://code.google.com/p/selenium/wiki/WebDriverJs上的说明以及https://code.google.com/p/chromedriver/wiki/GettingStarted

首先我下载了​​chromedriver,然后在终端上运行:

$ ./chromedriver
Starting ChromeDriver (v2.2) on port 9515
Run Code Online (Sandbox Code Playgroud)

然后,我安装了selenium-webdriver:

$ npm install selenium-webdriver
npm http GET https://registry.npmjs.org/selenium-webdriver
npm http 304 https://registry.npmjs.org/selenium-webdriver
selenium-webdriver@2.35.0 node_modules/selenium-webdriver
Run Code Online (Sandbox Code Playgroud)

然后,我启动了节点控制台并尝试构建webdriver实例

$ node
> var webdriver = require('selenium-webdriver')
undefined
> var driver = new webdriver.Builder().usingServer('http://localhost:9515/wd/hub').withCapabilities(webdriver.Capabilities.chrome()).build();
undefined
> 
timers.js:103
            if (!process.listeners('uncaughtException').length) throw e;
                                                                      ^
UnknownCommandError: unknown command: wd/hub/session
    at new bot.Error (/selenium/node_modules/selenium-webdriver/lib/atoms/error.js:109:18)
    at Object.bot.response.checkResponse (/selenium/node_modules/selenium-webdriver/lib/atoms/response.js:103:11)
    at /selenium/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:133:20
    at /selenium/node_modules/selenium-webdriver/lib/goog/base.js:1178:15
    at webdriver.promise.ControlFlow.runInNewFrame_ (/selenium-webdriver/lib/webdriver/promise.js:1438:20)
    at notify (/selenium/node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
    at notifyAll (/selenium/node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
    at fulfill (/selenium/ …
Run Code Online (Sandbox Code Playgroud)

javascript node.js selenium-chromedriver selenium-webdriver

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

getBoundingClientRect用于检测可见性

背景:我目前正在开发一个项目,我的JS应用程序嵌入到其他多个(父)JS应用程序中.某些父应用可以通过将display:block/none设置为包含我的应用的某个元素来显示/隐藏我的应用.其他父应用程序暂时从DOM中删除我的应用程序并稍后重新附加.很少有父应用程序使用shadow dom,因此我无法访问父应用程序中的元素.

我需要一种方法来检查我的应用程序是否可见(在DOM内部并显示;不关心可见性:隐藏并且不必在视口内),而不更改父应用程序,因此我查看了getBoundingClientRect.

问题:至少在chrome上,如果元素或其祖先有display:none或者从DOM中删除它,则getBoundingClientRect返回(w:0,h:0,l:0,t:0).我找不到关于这种行为保证的任何文档,我想知道,如果它是安全的(在某种意义上这个逻辑不会改变)使用getBoundingClientRect来检查元素的可见性.

此外,我需要知道这种行为是否在所有主流浏览器中都是一致的,包括FF,IE8 +和Safari.这记录在哪里?

最后,为什么(0,0,0,0)?我觉得getBoundingClientRect应该在这种情况下返回null,因为(0,0,0,0)实际上意味着不同的东西.这有充分的理由吗?


编辑/附加问题:感谢istos指出返回null可能会破坏一些毫无疑问的代码,例如:

console.log(clientRectObject.height);
// TypeError: Cannot read property 'height' of null
Run Code Online (Sandbox Code Playgroud)

不要抱怨当前的行为,而是作为一个设计问题:而不是null,可以返回一些非法的Rect值(例如负宽度和高度)是一个更有用的替代方案吗?

html javascript dom getboundingclientrect

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

Selenium ChromeDriver,无法启动已加载扩展的 Google Chrome

我正在使用 Selenium 2.0 为我的 Google Chrome 扩展创建自动化测试:

  1. WebdriverJS + NodeJS
  2. Chrome驱动程序
  3. MacOS X 10.8.4

首先,我也想测试安装过程,但是当使用 Selenium 弹出安装对话框时,似乎无法单击“添加”按钮。(我关于这个的另一个问题)。

现在,我改变了计划。我不想在测试过程中安装扩展程序,而是想在安装扩展程序的情况下启动 Chrome。但我还没有成功。

请看下面的代码:

var webdriver = require('selenium-webdriver'),
    chrome = require('selenium-webdriver/chrome');

var o = new chrome.Options();
o.addExtensions(['extensions/chrome/chrome_extension.zip']); // crx file is just a zip file
var s = new chrome.ServiceBuilder('bin/chromedriver').build();
var driver = chrome.createDriver(o, s)
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,出现以下错误: 在此输入图像描述

我注意到 ChromeDriver 在打开 Chrome 时会加载一个名为“Chrome Automation Extension 1”的 Chrome 扩展,因此必须有一种方法来加载另一个扩展,要么使用应用程序 ID 直接从 Webstore 加载,要么从本地计算机加载- 已包装或未包装。

任何帮助将不胜感激!

selenium google-chrome-extension selenium-chromedriver selenium-webdriver

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