Невозможно найти элемент, используя идентификатор или имя - PullRequest
0 голосов
/ 21 апреля 2019

HTML:

<input name="txtAnswer" type="text" maxlength="20" id="txtAnswer" class="box1">

Кодовые испытания:

driver.findElement(By.xpath("//table[@id='tblSecurityAnswer']//tbody//tr[2]//td[2]//input[@id='txtAnswer']")).sendKeys("green");

, а также:

driver.findElement(By.cssSelector("//tr:nth-child(1) > td > table > tbody >
    // tr:nth-child(2) > td:nth-child(2)"));

public static void main(String[] args) throws InterruptedException {
    WebDriver driver;

    // IE webdriver
    // System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
    // driver = new InternetExplorerDriver();

    System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
    driver = new ChromeDriver();

    // Maximize the browser window
    driver.manage().window().maximize();

    // navigate to specified url
    driver.get("http://dxbqcapp01/molforms/login.aspx");

    driver.findElement(By.id("txtUserName")).sendKeys("MS200963915");
    driver.findElement(By.id("txtPassword")).sendKeys("test@123");
    driver.findElement(By.xpath("//input[@type='submit' and @value='Submit']")).sendKeys(Keys.ENTER);
    driver.findElement(By.id("txtAnswer")).sendKeys("green");

1 Ответ

0 голосов
/ 21 апреля 2019

Трассировка стека ошибок помогла бы нам лучше отладить вашу проблему. Однако, чтобы отправить последовательность символов на нужный элемент, вы должны заставить WebDriverWait для элемента быть активным , и вы можете использовать любой из следующих Стратегии локатора :

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.box1#txtAnswer"))).sendKeys("green");
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='box1' and @id='txtAnswer']"))).sendKeys("green");
    
...