Можете ли вы сказать мне, как я могу выполнить последние три строки в селене? - PullRequest
0 голосов
/ 05 апреля 2020

В этой программе мне нужно написать скрипт для автоматизации сайта электронной коммерции. Основная деятельность, которую необходимо автоматизировать, состоит в следующем: 1 получить URL-адрес «это успешно выполнено» 2 добавить товар в корзину «это успешно выполнено» 3 щелкнуть значок корзины и перейти к оформлению заказа. "это неудачно выполнено"

за 3 балла, мой код не выполняется. Я не знаю почему? Я думаю, что мой сценарий пишет, но размещение неправильно. Пожалуйста, помогите мне найти его. Спасибо

package siteTesting;

import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class ItemsAddtoCart {


public static void main(String[] args) {
String[] itemNeeded = {"Brocolli","Cauliflower","Cucumber"};
System.setProperty("webdriver.gecko.driver", "D:\\Software\\geckodriver.exe");
WebDriver driver =  new FirefoxDriver();
driver.get("https://rahulshettyacademy.com/seleniumPractise/#/");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
List<WebElement> products = driver.findElements(By.className("product-name"));
int noOfProduct = products.size();
System.out.println(noOfProduct);
int i;
for(i=0; i<=noOfProduct; i++)
{
String[] NameofProduct = products.get(i).getText().split("-");
String uNameofProduct = NameofProduct[0].trim();
List itemNeededList = Arrays.asList(itemNeeded);
if(itemNeededList .contains(uNameofProduct))

{
System.out.println(uNameofProduct);
driver.findElements(By.xpath("//div[@class='product-action']")).get(i).click();
}

}
'these following lines are not executing, can you tell me why?'
driver.findElement(By.xpath("//a[@class='cart-icon']/img")).click();
driver.findElement(By.xpath("//button[contains(text(),'PROCEED TO CHECKOUT']")).click();
driver.findElement(By.className("promoCode")).sendKeys("rahulshettyacademy");
}

}

1 Ответ

0 голосов
/ 05 апреля 2020

Пожалуйста, проверьте ниже решение с WebDriverWait:

WebDriverWait wait = new WebDriverWait (driver, 15);


wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='cart-icon']//img[contains(@class,'')]"))).click();
                wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(text(),'PROCEED TO CHECKOUT')]"))).click();
                wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@placeholder='Enter promo code']"))).sendKeys("PramoCode");

Примечание: пожалуйста, добавьте ниже импорта:

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.WebDriverWait;

Рабочий раствор

driver.get("https://rahulshettyacademy.com/seleniumPractise/#/");
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        List<WebElement> products = driver.findElements(By.className("product-name"));
        int noOfProduct = products.size();
        System.out.println(noOfProduct);
        int i;
        for(i=0; i<=itemNeeded.length; i++)
        {
            String[] NameofProduct = products.get(i).getText().split("-");
            String uNameofProduct = NameofProduct[0].trim();
            List itemNeededList = Arrays.asList(itemNeeded);
            if(itemNeededList .contains(uNameofProduct))

            {
                System.out.println(uNameofProduct);
                driver.findElements(By.xpath("//div[@class='product-action']")).get(i).click();
            }

        }



        wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='cart-icon']//img[contains(@class,'')]"))).click();
        wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(text(),'PROCEED TO CHECKOUT')]"))).click();
        wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@placeholder='Enter promo code']"))).sendKeys("PramoCode");

Выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...