我有一个代码进入一个包含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ía</td>
<td width="121" rowspan="2" valign="bottom">
<input name="Submit" type="submit" class="texto" value="Ir al Reporte >>" >
</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ó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。
答案 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();