多窗口处理

问题描述 投票:0回答:1

我正在使用Selenium JAVA。下面的代码生成错误:

线程“main”中的异常org.openqa.selenium.NoSuchElementException:无法定位元素:{“method”:“name”,“selector”:“p_subj_code”}命令持续时间或超时:167毫秒。

这是我的代码应该做的:

  • 打开一个应用程序
  • 搜索课程
  • 点击课程
  • 单击复制课程链接
  • 打开一个新窗口
  • 单击元素(这是一个下拉菜单)并在其中输入值。

我在打开一个新窗口时遇到错误,然后无法找到该元素。

我的Java代码:

driver.findElement(By.xpath("//a[contains(text(),'Course Outline Editor')]")).click();

//Search the course
driver.findElement(By.xpath("//input[@value='Submit']")).click(); 
driver.findElement(By.xpath("//select[@id='majr_code_id']")).sendKeys("BMSC");
//Enter values for  course

driver.findElement(By.xpath("//input[@name='p_crse_numb_low']")).sendKeys("234");

//Enter values for  course
driver.findElement(By.xpath("//input[@name='p_submit_button']")).click();

//Submits the search
driver.findElement(By.xpath("//a[contains(text(),'BMSC 234')]")).click();

//Brings up the course
String winHandleBefore = driver.getWindowHandle();
System.out.println("Window title" + driver.getTitle()); 
driver.findElement(By.xpath("html/body/div[3]/a[2]/font")).click();

//Click the link to open a new page
driver.findElement(By.name("p_subj_code")).click(); 

//(Opens a new page)
driver.findElement(By.xpath(".//*[@id='majr_code_id']/option[2]")).click();       
driver.findElement(By.xpath("//input[@id='p'_crse_numb']")).sendKeys("111");
driver.findElement(By.xpath("//input[@value='Find']")).click();

对应的HTML代码:

<caption class="captiontext">Find Course to Copy from</caption>
<tbody>
<tr>
<td class="dedefault"/>
</tr>
<tr>
<td class="delabel" width="120" scope="row">Subject Code:</td>
<td class="dedefault" width="100" colspan="3">
<p class="leftaligntext">
<select id="majr_code_id" size="1" name="p_subj_code">
<option value="">Select  </option>
<option value="ACCY">ACCY </option>
java selenium
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.