selenium驱动程序选择

时间:2018-05-30 16:21:56

标签: java selenium selenium-webdriver opera

我有一个代码进入一个包含4个不同凭据的门户网站,第一个失败,然后其他人做正确的事。

在门户网站页面上,我的名字叫“cboLocales”:

<form action="?action=envia" method="post" name="frmInventario">
    <tr class="texto"> 
      <td width="172" bgcolor="e6e6e6" align="center">Seleccione Locales</td>
      <td width="150" bgcolor="#E6E6E6" align="center">Seleccione Formato de local</td>
      <td width="157" bgcolor="#E6E6E6">Por grupo de Productos</td>
      <td width="126" bgcolor="#E6E6E6">Por grupo de categor&iacute;a</td>
      <td width="121" rowspan="2" valign="bottom">
	      <input name="Submit" type="submit" class="texto" value="Ir al Reporte &gt;&gt;" >
      </td>
    </tr>
    <tr class="txt8pt"> 
      <td align="center">
	   
          <select name="cboLocales" class="texto">
			<option value="">Seleccione</option>
			<!--<option value="1301a">Total país</option>-->y
            <option value="1302b">Solo Regi&oacute;n Metropolitana</option>
            <option value="1303c">Regiones</option>
			
			<option value="2015">Mall</option>
			
          </select>
      </td>
  </form>

在我的代码中识别select,我有以下内容:

driver.get(Config.urlStockSB);
Select select=new Select(driver.findElement(By.name("cboLocales")));
select.selectByValue(locales.get(i)); //locales desde arreglo en config WebElement btnSubmitStock = driver.findElement(By.name("Submit"));
btnSubmitStock.click();

但是当通过选择时,我得到一个错误,我没有找到选择“cboLocales”的名称,但它是!

如果第一个凭据失败,请尝试更改凭据的输入顺序,即使失败,请帮助,我会非常感谢你!

PD:Opera使用和Netbeans。

1 个答案:

答案 0 :(得分:0)

你必须等待,直到页面完全加载

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

WebDriverWait wait5s = new WebDriverWait(driver,5);

driver.get(Config.urlStockSB);
Select select=new Select(wait5s.until(ExpectedConditions.elementToBeClickable(By.name("cboLocales"))));
select.selectByValue(locales.get(i)); //locales desde arreglo en config WebElement btnSubmitStock = driver.findElement(By.name("Submit"));
btnSubmitStock.click();