Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用量角器typescript,我如何检测这个元素方形白框,然后单击并拖动白框,它有ng mousedown和transform_Angular_Typescript_Jasmine_Protractor_Webautomation - Fatal编程技术网

Angular 使用量角器typescript,我如何检测这个元素方形白框,然后单击并拖动白框,它有ng mousedown和transform

Angular 使用量角器typescript,我如何检测这个元素方形白框,然后单击并拖动白框,它有ng mousedown和transform,angular,typescript,jasmine,protractor,webautomation,Angular,Typescript,Jasmine,Protractor,Webautomation,我需要帮助为这个创建一个typescript/javascript量角器代码?用于web自动化 如何单击此白盒并将其从左向右拖动 从左向右拖动,也会将的值从transform=“translate(205)”更改为transform=“translate(206)”以及2/20/18 网站代码: <g id="IndicateNav" ng-attr-trnsform="translate({{trVM._indicate || 0}})" ng-mousedown="trVM.mous

我需要帮助为这个创建一个typescript/javascript量角器代码?用于web自动化

如何单击此白盒并将其从左向右拖动

从左向右拖动,也会将的值从
transform=“translate(205)”
更改为
transform=“translate(206)”
以及
2/20/18

网站代码:

<g id="IndicateNav" ng-attr-trnsform="translate({{trVM._indicate || 0}})" ng-mousedown="trVM.mousedown($event, 'indicator')" ng-show="trVM._indicate" class="move-horizonal show-label-on-hover" transform="translate(205)">
   <line x1="0" x2="0" ng-attr-y1="{{trVM.bTop}}" ng-attr-y2="{{trVM.height}}" stroke="black" stroke-width="2" y1="20" y2="45"></line>
        <g ng-attr-trnsform="translate(0,{{trVM.bTop + ( (trVM.height - trVM.bTop) / 2) }})" transform="translate(0,32.5)">
            <square sx="0" sy="0" r="6" fill="white" stroke="black" stroke-width="2" ng-non-bindable=""></square>
        </g>
            <text x="14" ng-attr-y="{{3 + trVM.bTop + ( (trVM.height-trVM.bTop) / 2 )}}" text-anchor="start" font-size="12px" fill="white" style="pointer-events:none;" y="35.5">2/20/18</text>
</g>

2/20/18

您可以利用
browser.actions()
提供的功能

解决方案:
  • 将id添加到
    square
    标记[假设id为“whiteBox”]
  • 获取“whiteBox”元素并将其保存到变量中

    const whiteBox = element(by.css('#whiteBox'));
    
  • 通过以下代码模拟用户的拖动行为:

    browser.actions().mouseDown(whiteBox).mouseMove({x: 50, y: 0}).mouseUp().perform()  
    
    这将移动白盒并向右拖动50像素

  • 如果要将“whiteBox”拖动到其他元素,也可以这样做:

    browser.actions().mouseDown(whiteBox).mouseMove(element2).mouseUp().perform()  
    

  • 完整的测试代码:
    简要说明:Actions API已更改/即将更改。此语句基于库或浏览器驱动程序是否实现了W3C操作标准。量角器当前使用的是selenium webdriver 3(W3C之前的标准),一些浏览器驱动程序(如gecko)可能无法工作(W3C标准)。如果量角器不工作,它会出现错误:“Failed:Wait timeout after 10069ms”@SeanRay您提到的超时10秒(即10000毫秒)的代码失败。这就是它显示错误的原因。另外,我的代码也会抛出类似的错误,如果浏览器中的whiteBox元素在5秒内不存在,代码会说“Failed:Wait timed out after 5000ms”。@SeanRay,你的意思是想更改一些输入文本框值吗?@SaddamPojee我已经知道如何移动squarebox,但我还需要更改文本上的值。['code']browser.wait(EC.presenceOf(whiteBox),5000)。然后(()=>{whiteBox.getAttribute('transform')。然后(()=>{browser.driver.executeScript('document.getElementById('indicatateNav')。setAttribute('transform','translate(600'));};['code']
    describe('whiteBox Dragging Test', function() {
      it('Drag whiteBox to right', function () {
        const EC = protractor.ExpectedConditions;
        const whiteBox = element(by.css('#whiteBox'));
        browser.wait(EC.presenceOf(whiteBox), 5000).then(() => {
          browser.actions().mouseDown(whiteBox).mouseMove({x: 50, y: 0}).mouseUp().perform();
        });
      });
    });