Selenium Webdriver локатор (с использованием Java) - PullRequest
0 голосов
/ 15 мая 2018

Мой локатор для кнопки не работает.для этого я не могу идти дальше.я пробовал xpath, cssSelector, ID.Ничто из этого не сработало.Я загружаю код.Я новичок в селене.Последняя команда не работает.

public class Upload {

  public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver","E:\\chromedriver_win32\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    JavascriptExecutor js = (JavascriptExecutor) driver;
    driver.get("http://888.b7omc88t.io/");
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    //code for boomcast portal login

    driver.findElement(By.xpath("/html/body/div[1]/div/div/section/form/div[1]/input")).click();
    driver.findElement(By.xpath("/html/body/div[1]/div/div/section/form/div[1]/input")).sendKeys("fatima@ssd-tech.com");
    driver.findElement(By.xpath("/html/body/div[1]/div/div/section/form/div[2]/input")).click();
    driver.findElement(By.xpath("/html/body/div[1]/div/div/section/form/div[2]/input")).sendKeys("1234");
    driver.findElement(By.xpath("/html/body/div[1]/div/div/section/form/div[3]/button")).click();

    driver.findElement(By.xpath("/html/body/div[2]/div/div/div[1]/div/div[3]/div/ul/li[4]/a")).click();
    driver.findElement(By.xpath("/html/body/div[2]/div/div/div[1]/div/div[3]/div/ul/li[4]/ul/li/a")).click();
    driver.findElement(By.xpath("//*[@id=\"smbscheduleobdStep2\"]")).click();
    driver.findElement(By.xpath("/html/body/div[2]/div/div/div[3]/div/div/div[2]/div/form/div[1]/div[3]/div/div/div/input")).click();
    driver.findElement(By.xpath("/html/body/div[2]/div/div/div[3]/div/div/div[2]/div/form/div[1]/div[3]/div/div/div/input")).sendKeys("01791719879");
    driver.findElement(By.xpath("/html/body/div[2]/div/div/div[3]/div/div/div[2]/div/div[2]/a[3]")).click();
    driver.findElement(By.cssSelector("#content > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > form:nth-child(3) > div:nth-child(5) > div:nth-child(3) > div:nth-child(2) > button:nth-child(1)")).click(); // This line is not getting executed

}

HTML-код кнопки:

<div class="col-md-3 text-right">
    <button id="smbscheduleobdStep3" type="button" class="btn btn-block">Saved files</button>
</div>

Ответы [ 2 ]

0 голосов
/ 15 мая 2018
  1. Проверьте, работает ли ваш локатор с помощью инструментов разработки в FF
  2. Локатор может быть упрощен до By.cssSelector("#smbscheduleobdStep3")
  3. Проверьте, не находится ли ваш элемент во фрейме, если это так, вам нужно включить его с помощью driver.manage().switchTo().frame().

И, конечно, можно использовать WaitDriver, как указано выше.

0 голосов
/ 15 мая 2018

В соответствии с предоставленным вами HTML-кодом для нажатия кнопки вам нужно заставить WebDriverWait сделать кнопку нажатой, и вы можете использовать следующую строку кода:

import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
// other code lines
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='btn btn-block' and @id='smbscheduleobdStep3' and contains(.,'Saved files')]"))).click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...