Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “线程中的异常”;“主要”;org.openqa.selenium.NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“id”,“选择器”:“名称”}_Java_Selenium_Selenium Chromedriver - Fatal编程技术网

Java “线程中的异常”;“主要”;org.openqa.selenium.NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“id”,“选择器”:“名称”}

Java “线程中的异常”;“主要”;org.openqa.selenium.NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“id”,“选择器”:“名称”},java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,来源 <input id="name" name="name" type="text" style="box-sizing:border-box;-moz-box-sizing:border-box;position:absolute;left:130px;top:50px;width:220px;"> 此主题中的页面是一个弹出页面 错误: 线程“main”org.openqa.selenium.NoSuchElementException中的异常: 没有此类元素:无法定位元素:

来源

<input id="name" name="name" type="text" style="box-sizing:border-box;-moz-box-sizing:border-box;position:absolute;left:130px;top:50px;width:220px;">
此主题中的页面是一个弹出页面

错误:

线程“main”org.openqa.selenium.NoSuchElementException中的异常: 没有此类元素:无法定位元素: {“方法”:“id”,“选择器”:“名称”}(会话信息: chrome=61.0.3163.100)(驾驶员信息:chromedriver=2.32.498550 (9DEC58E66C31BC53A9CE3C7226F0C1C5810906A),平台=Windows NT 10.0.10240 x86_64)(警告:服务器未提供任何stacktrace信息)命令持续时间或超时:0毫秒

我尝试使用css、xpath、名称等进行查找,但没有任何用处。它们都表现出相同的错误。我正在Eclipse上使用SeleniumWebDriver和Java

package open_chrome;

import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;

public class Chrome_Driver {

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

    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.get("https://<website.com>/");

    driver.findElement(By.id("email")).sendKeys("docker@de.com");
    driver.findElement(By.id("password")).sendKeys("Test1234");
    driver.findElement(By.cssSelector("body > div:nth-child(1) > div > div > 
    form > div:nth-child(5) > button")).click();
    //Adding New VAR

    driver.findElement(By.id("ext-gen224")).click();
    driver.findElement(By.id("ext-gen367")).click();
    String parentWindow = driver.getWindowHandle();
//      Set<String> handles =  driver.getWindowHandles();
    for(String childWindow:driver.getWindowHandles())
    {
        driver.switchTo().window(childWindow);
        driver.findElement(By.id("name")).sendKeys("Krishna-05");
    }
package open\u chrome;
导入java.util.Iterator;
导入java.util.Set;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.chrome.ChromeDriver;
导入org.openqa.selenium.support.ui.Select;
公共级Chrome_驱动程序{
公共静态void main(字符串[]args)引发InterruptedException{
WebDriver驱动程序=新的ChromeDriver();
driver.manage().window().maximize();
get(“https://”);
driver.findElement(By.id(“电子邮件”)).sendKeys(“docker@de.com");
driver.findElement(By.id(“密码”)).sendKeys(“Test1234”);
driver.findElement(通过.css选择器)(“body>div:n个子(1)>div>div>
表单>分区:第n个子项(5)>按钮”)。单击();
//添加新的VAR
driver.findElement(By.id(“ext-gen224”))。单击();
driver.findElement(By.id(“ext-gen367”))。单击();
字符串parentWindow=driver.getWindowHandle();
//Set handles=driver.getWindowHandles();
对于(字符串childWindow:driver.getWindowHandles())
{
driver.switchTo().window(childWindow);
驱动程序.findElement(By.id(“名称”)).sendKeys(“Krishna-05”);
}

可能有很多事实。您的元素是否可见。我的意思是,例如,您可能有滚动条?可能有iframe?
如果这样做没有帮助,请为测试类提供开始和所有步骤、浏览器信息……我会尽力提供帮助。

可能有很多事实。您的元素是否可见。我的意思是,例如,您可能有滚动条?可能有iframe?
如果这样做没有帮助,请为您的测试类提供开始和所有步骤、浏览器信息……我会尽力提供帮助。

您可以使用任何定位器,我想可能是等待问题,请尝试显式和隐式等待

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement VARName = driver.findElement(By.id("name"));
VARName.sendKeys("Krishna-05");
WebDriverWait wait = new WebDriverWait(driver,20);
WebElement VARName= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("name")));
VARName.sendKeys("Krishna-05")
或者直接等待

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement VARName = driver.findElement(By.id("name"));
VARName.sendKeys("Krishna-05");
WebDriverWait wait = new WebDriverWait(driver,20);
WebElement VARName= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("name")));
VARName.sendKeys("Krishna-05")

第二件事检查元素是否在帧中,如果它在
帧中
首先在帧中切换,然后使用上面的代码

您可以使用任何定位器,我想可能是等待问题,请尝试显式和隐式等待

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement VARName = driver.findElement(By.id("name"));
VARName.sendKeys("Krishna-05");
WebDriverWait wait = new WebDriverWait(driver,20);
WebElement VARName= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("name")));
VARName.sendKeys("Krishna-05")
或者直接等待

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement VARName = driver.findElement(By.id("name"));
VARName.sendKeys("Krishna-05");
WebDriverWait wait = new WebDriverWait(driver,20);
WebElement VARName= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("name")));
VARName.sendKeys("Krishna-05")

第二件事是检查元素是否在帧中,如果它在
帧中
首先在帧中切换,然后使用上面的代码

您应该添加以下代码行:

driver.manage().timeout().implicitlyWait(120,TimeUnit.SECONDS);


系统在几秒钟内运行您看不到的代码,请给出此代码。

您应该添加以下代码行:

driver.manage().timeout().implicitlyWait(120,TimeUnit.SECONDS);


系统在不到几秒钟的时间内运行该代码,这是您看不到的,请给出该代码。

发生这种情况的原因可能有很多…除了尝试不同的定位器之外,您还尝试过解决什么问题?等待?是否有IFRAME?发生这种情况的原因可能有很多…除了尝试不同的定位器之外,您尝试过解决什么问题定位器?等待?是否存在IFRAME?
元素的可见性定位
不检查元素是否位于
IFRAME
中。它只调用
isDisplayed()
方法。除此之外,这是一个很好的答案。
visibilityOfElementLocated
不检查元素是否在
iframe
中。它只调用
isDisplayed()
元素上的方法。除此之外,这是一个很好的答案。我无法将图像添加为注释,但请检查问题,我已将其添加到那里。希望这将清除一些云。div选项0是否可见?我的意思是在开始时尝试一步一步地查找输入。在输入之前可能还有一个问题存在另一个具有同名?也请检查此项。您也可以尝试在html内容中查找元素。也可以尝试此项。如果这无助于向我提供您的类的url、设置等。这也是正常的页面吗?可能是弹出的,或者它位于其他选项卡、窗口上?另一个弹出窗口。首先,您应该切换到该窗口,可能web驱动程序警报类会有所帮助。之后开始查找您可以在查找元素之前使用暂停2秒以确保其存在。我无法将图像添加为注释,但请检查问题,我已将其添加到那里。希望这将清除一些云。div选项\u 0是否可见?我的意思是在开始时尝试逐步查找输入。在输入之前可能还有一个问题另一个同名元素?也请检查此项。您也可以尝试在html内容中查找元素。也请尝试此项。如果这无助于向我提供您的类的url、设置等。这也是正常的页面吗?可能是弹出的,或者在其他选项卡、窗口上?另一个弹出窗口o首先您应该切换到该窗口可能是web驱动程序警报class将提供帮助。在开始查找之后,您可以在查找元素之前使用暂停2秒,以确保它存在