Невозможно поместить данные в элемент таблицы.Такой элемент не найден - PullRequest
0 голосов
/ 10 апреля 2019

Попытка отправить данные в элемент таблицы (ячейку). Проверенный идентификатор, Xpath, CssSelector и ни один из них не является неправильным. Даже установите тайм-аут до загрузки страницы. Даже проверил iFrame (уже переключился на текущий iFrame).

Такой элемент не найден, ошибка появляется каждый раз. Не уверен, что мне нужно снова переключаться на iFrame после загрузки страницы?

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

Спасибо заранее.

Запустите мой скрипт для лучшего понимания, где он терпит неудачу.

public class SapDijon 
{

    WebDriver driver;
    JavascriptExecutor jse;


    public static void main(String[] args) throws Exception 
    {
        SapDijon sapObj = new SapDijon();

        sapObj.invokeBrowser();
        sapObj.initializeSapDijon();
        sapObj.ForecastME59();

    }//End of Main

    public void invokeBrowser()
    {
        System.setProperty("webdriver.chrome.driver", "U:\\Research Paper\\Selenium\\Drivers\\Chrome\\chromedriver_win32\\chromedriver.exe");
        driver = new ChromeDriver();

        driver.manage().deleteAllCookies();
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
        driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
    }


    public void initializeSapDijon() throws Exception
    {
        Thread.sleep(1200);
        driver.get("http://dijon.cob.csuchico.edu:8041/sap/bc/gui/sap/its/webgui/?");
        driver.findElement(By.id("sap-user")).sendKeys("H5");
        Thread.sleep(1200);

        driver.findElement(By.id("sap-password")).sendKeys("Onsjhjsa1087");
        Thread.sleep(1200);

        driver.findElement(By.id("sap-client")).clear();
        Thread.sleep(1200);

        driver.findElement(By.id("sap-client")).sendKeys("485");
        Thread.sleep(1200);

        driver.findElement(By.id("LOGON_BUTTON")).click();
    }

    public void ForecastME59() throws InterruptedException
    {

        driver.switchTo().frame("ITSFRAME1");
        Thread.sleep(800);
        driver.findElement(By.xpath("//td[@id='tree#105#4#1']//span[@class='lsSTStatusImg lsMirrorRtl lsSTStatusIcon urSTExpClo urCursorClickable']")).click();

        Thread.sleep(800);
        Actions action = new Actions(driver);
        WebElement md61 = driver.findElement(By.xpath("//span[@id='tree#105#6#1#1#i']"));
        action.doubleClick(md61).perform();

        driver.findElement(By.id("M0:46:::4:2-imgSymb")).click();
        driver.findElement(By.id("M0:46:::4:26")).sendKeys("HH-F");
        driver.findElement(By.id("M0:50::btn[0]")).click();
        Thread.sleep(6000);

        driver.manage().timeouts().pageLoadTimeout(4, TimeUnit.SECONDS);

        driver.findElement(By.xpath("//span[@id='tbl5732[1,8]_c-r']/input[@id='tbl5732[1,8]_c']")).click();
        driver.findElement(By.xpath("//span[@id='tbl5732[1,8]_c-r']/input[@id='tbl5732[1,8]_c']")).sendKeys("100");

    }
}//End of Class

1 Ответ

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

После "action.doubleClick(md61).perform()" переключитесь обратно с фрейма на содержимое по умолчанию и снова переключитесь на доступный iframe.

Чтобы вернуться к родительскому фрейму, вы можете использовать switchTo().parentFrame() или, если хотите,вернуться к основному (или самому родительскому) фрейму, вы можете использовать switchTo().defaultContent();

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