Почему селен щелкает только первую строку кода, а не две другие? - PullRequest
0 голосов
/ 12 декабря 2018

Сначала я проверил, работает ли первая строка кода для нажатия на XPath, но затем, когда я добавляю вторую строку кода для нажатия кнопки By.name (), это не работает, поэтому я попытался изменить XPath, а затемв селекторах CSS, но он щелкает только первый (код строки XPath).Я пытался, но, кажется, не нажимает два других элемента.Что я обнаружил, так это то, что он только нажимал на то, что было на первой странице, на самом деле не имело значения, что было на новой странице, и я сказал нажать на элемент, который я хотел сделать.Я использую Selenium version 3.141.59.

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver", "C:\\Users\\ae65255\\Desktop\\java_gui\\chromedriver.exe");       
    WebDriver driver = new ChromeDriver();
    driver.get("https://shop.palaceskateboards.com/collections/new");
    driver.findElement(By.xpath("//*[@id=\"product-loop\"]/div[@data-alpha='S-LINE JOGGER BLACK']")).click(); //only this one work 
    driver.findElement(By.name("button")).click(); //second click dosen't work?
    driver.findElement(By.linkText("Cart")).click(); //this dosen't work too?
    }

1 Ответ

0 голосов
/ 12 декабря 2018

Добавьте немного времени ожидания, чтобы страница загрузилась, прежде чем найти элемент

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement button = wait.until(ExpectedConditions.elementToBeClickable(By.name("button")));
button.click();

Третий локатор By.linkText("Cart") не сработал, потому что кнопка не имеет Cart текста, она находится в *Атрибуты 1006 * и value.

В качестве примечания следует использовать By.partialLinkText() при поиске частичного текста.

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