2017-10-18 1 views
-2

i Shampoo in der Warenkorb zu legen, hatte es in Ordnung arbeitet, aber jetzt ist es nicht sie keine Änderung im Code jetzt ist es die Seite nach unten scrollen und aufhören zu arbeiten
Unten ist mein Code-Code funktioniert nicht, wie es vorher (Selen java) war

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(); 

Der Web-Code ist

<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> 

Was ich bin immer auf 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) 
+2

Erklären * aufhören zu arbeiten *. Was genau passiert? Wenn Sie eine Ausnahme haben, posten Sie auch den Stack-Trace. – Guy

+0

Es führt keine Aktion Wie zuvor konnte ich ein Produkt im Warenkorb hinzufügen, aber jetzt scrollen Sie die Seite nach unten und fügt das Produkt nicht im Warenkorb –

+0

Aus dem HTML-Code des Links können wir wissen, dass es sein muss eine JavaScript-Funktion, um auf das Klickereignis des Links zu reagieren. In diesem Fall müssen Sie den Browser darauf warten, Skripte auf der Seite vollständig auszuführen, um die JavaScript-Funktion an ein Klickereignis zu binden. Andernfalls wird nach dem Klick nichts passieren. Sie können etwas warten/schlafen vor actions.perform() hinzufügen, um Ihr Problem in einem solchen Fall zu sehen. – yong

Antwort

0

zum HTML Bezug Ihnen geteilt haben, haben Sie die folgenden Schritte aus:

driver.findElement(By.linkText("Add to cart")); 

, die einige Änderungen in der xpath zu brauchen scheint. Können Sie stattdessen die folgende Codezeile versuchen:

WebElement menuHoverLink = driver.findElement(By.xpath("//a[@title='Add to cart']")); 
+0

Vielen Dank für Ihre Hilfe Es funktionierte, als ich neu startete, aber wieder hörte es auf zu arbeiten –

+0

Aktualisieren Sie die Frage mit der genauen gesamten Fehler Stack-Trace. – DebanjanB

+0

Aktualisiert mit der Antwort –

Verwandte Themen