java - 获取NoSuchElementException : no such element: Unable to locate element

标签 java selenium selenium-webdriver selenium-chromedriver

我正在尝试将其自动化。但是,当我尝试将文本发送到文本字段时,它收到 NoSuchElementException。我也尝试过webdriverwait。但没有运气。窗口顶部有一个弹出窗口。我关闭了它,还尝试添加 --disable-popup-blocking 参数。但它仍然不起作用。所以有人可以告诉我我在这里做错了什么吗?我对此表示高度赞赏。谢谢。

    System.setProperty("webdriver.chrome.driver", "chromedriver/chromedriver.exe");

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-popup-blocking");
    options.addArguments("chrome.switches", "--disable-extensions");

    WebDriver driver = new ChromeDriver(options);
    driver.manage().window().maximize();
    driver.get(URL);

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    JavascriptExecutor jse = (JavascriptExecutor) driver;
    jse.executeScript("window.scrollBy(0,250)");

    driver.findElement(By.cssSelector("#txt_insert2055107")).click();
    driver.findElement(By.cssSelector("#txt_insert2055107")).sendKeys("Test");
    driver.findElement(By.id("txt_insert2055108")).click();
    driver.findElement(By.id("txt_insert2055108")).sendKeys("Test");
    driver.findElement(By.id("btnsubmit")).click();

    driver.close();

最佳答案

您无法在输入中发送文本,因为您需要先切换到 iframe。请找到以下工作代码:

https://www.frontrush.com/FR_Web_App/Player/PlayerSubmit.aspx?sid=MTA1NTc=-9M6ha/5BuDo=&ptype=recruit

代码:

        driver.get("https://columbiacougars.com/sb_output.aspx?frform=8&path=mbball");
        driver.switchTo().frame(0);

        driver.manage().window().maximize();

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

        WebDriverWait wait = new WebDriverWait(driver, 10);

        Actions action = new Actions(driver);
        WebElement firstName=wait.until(ExpectedConditions.elementToBeClickable(By.id("txt_insert2055107")));
        ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", firstName);
        action.moveToElement(firstName).sendKeys("Test").perform();
        WebElement lastName=wait.until(ExpectedConditions.elementToBeClickable(By.id("txt_insert2055108")));
        ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", lastName);
        lastName.sendKeys("Test");
        action.moveToElement(lastName).sendKeys("Test").perform();
        WebElement clickElement=wait.until(ExpectedConditions.elementToBeClickable(By.name("btnsubmit")));
        ((JavascriptExecutor)driver).executeScript("arguments[0].click();", clickElement);
        driver.close();

enter image description here

关于java - 获取NoSuchElementException : no such element: Unable to locate element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375275/

相关文章:

python - 在 CrawlSpider 中将 cookie 传递给后续请求

c# - 拖放已执行但未执行 - webdriver

java - 如何为Testng创建一个可执行jar文件,runnnig点应该是Xml文件

python - 使用 Tor 和 Selenium 获得新的身份。出现错误 "IncorrectSocketType: unable to use the control socket"

java - java中InheritableThreadlocal值自动改变

Java 类实例

python - 在带有 Windows 10 的 Python 的 Selenium 中打开 Firefox

java - 无法连接到端口 7056 上的二进制 FirefoxBinary(C :\Program Files (x86)\Mozilla Firefox\firefox. exe);处理输出如下: null

Java 正则表达式总是失败

Java项目在IDE(IntelliJ Idea)中运行,但在Maven构建后无法运行