我从Excel文件发送定义的数据。我尝试了一些代码,但他们没有从Excel文件中选择所有的数据,在某些时候,代码给了我没有找到的WebElement异常。需要帮助 - Selenium webdriver-点击可见列表中的元素不起作用
下面是HTML代码:
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<div id="addDialog" class="hidden ui-dialog-content ui-widget-content" style="display: block; width: auto; min-height: 30px; height: auto; max-height: 351.05px; overflow-y: auto;">
<div class="field-container">
<fieldset class="field-container">
<legend>Contracts:</legend>
<a class="select-all" href="#">Select All</a>
<a class="deselect-all" href="#">Deselect All</a>
<select id="addContract" class="searchable" multiple="multiple" style="position: absolute; left: -9999px;">
<option value="93370956">93370956</option>
<option value="93796167">93796167</option>
<option value="94203239">94203239</option>
</select>
<div id="ms-addContract" class="ms-container">
<div class="ms-selectable">
<input class="search-input" type="text" placeholder="filter" autocomplete="off"/>
<ul class="ms-list" tabindex="-1">
<li id="86355560-selectable" class="ms-elem-selectable">
<span>93370956</span>
</li>
<li id="202890296-selectable" class="ms-elem-selectable">
<span>93796167</span>
</li>
<li id="938848030-selectable" class="ms-elem-selectable">
<span>94203239</span>
</li>
</ul>
</div>
</div>
需要从列表中选择值。 努力做到: 这一努力代码工作,但它仅选择一个值,然后给了例外
WebDriverWait Wait=new WebDriverWait(driver, 10);
Wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//ul[@class='ms-list']/li/span")));
//now you can find element
List<WebElement>options=driver.findElements(By.xpath("//ul[@class='ms-list']/li/span[contains(text(),'"+testData+"')]"));
for (WebElement option: options) {
if(testData.equals(option.getText())) option.click();
}
上面的代码尝试,但它只能选择一个值!
WebDriverWait Wait = new WebDriverWait(driver, 10);
Wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='ms-addContract']//descendant::div[@class='ms-selectable']/ul[@class='ms-list']]//span")));
List<WebElement> options = driver.findElements(By.xpath("//*[@id='ms-addContract']//descendant::div[@class='ms-selectable']/ul[@class='ms-list']]//span[contains(text(), '"+testData+"')]"));
for (WebElement option : options) {
if(testData.equals(option.getText()))
option.click();--tried this xpath-no success
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='ms-addContract']/div[1]/input"))).click();
driver.findElement(By.xpath(".//*[@id='ms-addContract']/div[1]/input")).sendKeys(testData);
WebDriverWait wait1 = new WebDriverWait(driver, 10);
wait1.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='ms-addContract']/div[1]/input"))).sendKeys(Keys.ARROW_DOWN,Keys.ARROW_DOWN,Keys.SPACE);
//Clear the input text value.
driver.findElement(By.xpath(".//*[@id='ms-addContract']/div[1]/input")).clear();---worked but not satisfactory
请需要帮助找到的元素。我正在使用关键字驱动框架读取excel文件中的值。
10哪些元素失败?目前很难理解你的代码在哪里失败。 –
@MadisKangro它不从span类中选择值。当我运行以上尝试代码时,他们只是坚持选择所有按钮。 –
add stacktrace =) –