Angular 使用量角器typescript,我如何检测这个元素方形白框,然后单击并拖动白框,它有ng mousedown和transform
我需要帮助为这个创建一个typescript/javascript量角器代码?用于web自动化 如何单击此白盒并将其从左向右拖动 从左向右拖动,也会将的值从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
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()
提供的功能
解决方案:
square
标记[假设id为“whiteBox”]李>
const whiteBox = element(by.css('#whiteBox'));
browser.actions().mouseDown(whiteBox).mouseMove({x: 50, y: 0}).mouseUp().perform()
这将移动白盒并向右拖动50像素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();
});
});
});