对于html代码,它显示按钮但是输入。
null.Contains(aString)
在selenium webdriver我使用下面的代码它不起作用。
<input id="cmdExport" type="submit" value="Save File" onmouseover="return MVstyle()" onmouseout="return MOstyle()" style="position: absolute; top: 50px; left: 20px; width: 100px; height: 30px; cursor: pointer;">
我也试过
WebElement saveButton = driver.findElement(By.xpath("input[@id='cmdExport']"));
saveButton.click();
还尝试下面的代码无效请帮助
new WebDriverWait(Driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible("cmdExport");
WebElement saveButton = driver.findElement(By.xpath("input[@id='cmdExport']")).sendKeys("TEXT");
saveButton.click();
我试图发布完整的htmlit非常大,无法发布。
WebElement saveButton = wait.until(ExpectedConditions
.presenceOfElementLocated(By.id("cmdExport")));
答案 0 :(得分:0)
org.openqa.selenium.ElementNotVisibleException在元素加载到DOM中但看不到与之交互时发生。在您的情况下,大多数可能的情况可能是,具有相同ID cmdExport
的多个元素。因此,Selenium从DOM中获取具有相同id(隐藏)的第一个元素,并触发针对它的操作。
尝试查找为路径定位器返回的元素数。
List<WebElement> saveButtons = driver.findElements(By.xpath("//input[@id='cmdExport']"));
上面的代码将返回与xpath //input[@id='cmdExport']
如果列表大小超过1,则意味着您有多个与给定xpath匹配的Web元素。如果是这样,你必须更加独特地编写xpath来定位所需的元素。
答案 1 :(得分:0)
选项1:使用Actions类:
WebElement saveButton = driver.findElement(By.xpath("input[@id='cmdExport']"));
Actions action = new Actions(driver);
action.click(saveButton).perform();
选项2:注入Javascript
((JavascriptExecutor)driver).executeScript("arguments[0].click();", saveButton);
答案 2 :(得分:0)
以下代码可以解决这个问题:
WebElement hoverElement = driver.findElement(By.xpath("input[@id='cmdExport']"));
Actions builder = new Actions(driver);
builder.moveToElement(hoverElement).perform();
By locator = By.id("fileLocation");
driver.click(locator);
它将找到该元素,将鼠标悬停在该元素上,使“a”标记可见,并点击“a”标记。
我希望这会有所帮助。
答案 3 :(得分:0)
尝试使用以下定位器
By.xpath("(//a[@id='cmdExport'])[1]") //for accessing second element
正如您在评论中提到的那样,
查看this的mouseOver方法。