【发布时间】:2017-10-18 04:02:16
【问题描述】:
我不得不在购物车中添加洗发水
它工作正常
但现在不是
他们的代码没有变化
现在它向下滚动页面并停止工作
下面是我的代码
driver.findElement(By.id("submit")).sendKeys(Keys.ENTER);
WebDriverWait wait = new WebDriverWait (driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("logout-trigger")));
driver.findElement(By.id("search-trigger")).sendKeys(Keys.ENTER);
driver.findElement(By.id("search")).sendKeys("Shampoo");
driver.findElement(By.id("search")).sendKeys(Keys.ENTER);
driver.findElement(By.id("grid_quantity_1")).sendKeys(Keys.ENTER);
Actions actions = new Actions(driver);
WebElement menuHoverLink = driver.findElement(By.linkText("Add to cart"));
actions.moveToElement(menuHoverLink);
actions.click();
actions.perform();
网页代码是
<div class="grid-add-to-cart" ng-show="prod.currentPrice > 0" ng-mouseleave="hidegridViewToggle($index+1)">
<a title="Add to cart" href="javascript:void(0)" ng-mouseover="showgridViewToggle($index+1)" ng-click="helperService.addToCart('grid_product',prod.productSizeId,$index+1,prod.itemsPerBox)">
<i class="fa fa-shopping-bag faa-shake animated"></i>
</a>
<div class="grid-quantity-field" id="show_grid_input_div_1">
<input ng-keypress="($event.which===13)?helperService.addToCart('grid_product',prod.productSizeId,$index+1,prod.itemsPerBox):helperService.keyCheck($event)" type="number" name="quantity" id="grid_quantity_1" data-ng-class="$even ? 'height_80' : ''" oninput="maxLengthCheck(this)" ng-model="prod.itemsPerBoxInput" maxlength="5" min="1" max="99999" ng-value="userType == 'distributor' ? 6: 1" title="Add Quantity" class="ng-pristine ng-valid ng-valid-min ng-valid-max ng-valid-maxlength height_80 ng-touched" value="1" style="">
</div>
</div>
我在 Eclipse 上得到了什么
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635)
at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:322)
【问题讨论】:
-
解释停止工作。到底发生了什么?如果您也有异常发布堆栈跟踪。
-
它没有像以前那样将产品添加到购物车中执行任何操作,但现在它向下滚动页面并且不会将产品添加到购物车中
-
从链接的html代码可以知道,必须有一个javascript函数来响应链接的点击事件。在这种情况下,您需要等待浏览器完全执行页面上的脚本标签才能将javascript函数绑定到点击事件,否则点击后不会发生任何事情。您可以在 actions.perform() 之前添加一些等待/睡眠,以查看您的问题是否属于这种情况。
-
从它工作到现在,你有没有改变什么?升级硒版本?更新了您的页面版本(不同的 HTML)?
-
没有任何改变
标签: java selenium testing selenium-webdriver automated-tests