Webdriver can‘t action the element when the element is out of view
1. Scroll to the element
use JavaScript to scroll the element to view
2. Use Location to view
Use LocationInView property need use RemoteWebdriver and RemoteWebElement
Code like:
Keypress(string locator, string keySequence)
selenium.KeyPress("id=rd_A", "\\40")
display都有这些值,有none, inline,block...,我把none改成了block,也可以把visiblility:hidden改成visible
JavascriptExecutorj= (JavascriptExecutor)driver;
j.executeScript("document.findElementById(‘123‘).style.display=‘block‘;");
然后再WebElement.sendKeys ("c:\abc.txt");
xpath在定位更接近目标的节点时可用“//”和“/”分割路径,“//”表示相对路径,即可直接定位到元素,不管它的位置在哪;
“/”表示绝对路径,即当前目录下的直接子元素。
比如在 input 框中输入某个字符也可以使用这个方法。
action.click(element).sendKeys(keysToSend)。
这个方法也可以合并成:
action.sendKeys(element,keysToSend);
在写selenium自动化的过程中,经常会遇到这样的问题:
1.在同一个页面内做操作,比如点击某个按钮后,弹出一个框,再点击另外一个按钮,又弹出一个框
2.此时如果第一个click操作后,第二个click再点击时,由于前一个弹出的框仍旧在前端显示,就会出错
3.在实际人工操作中,点击出第一个框后,点击一下空白区域,在点击出现第二个框。因此,可以考虑一个点击空白区域的方法
/**
* 点击空白区域:坐标(0,0)
*/
public static void clickBlankArea(WebDriver driver) {
Actions actions = new Actions(driver);
actions.moveByOffset(0, 0).click().build().perform();
}
让driver先移动到一个空白位置(此处设为(0,0)坐标点),做一下点击操作即可
原文:http://www.cnblogs.com/111testing/p/7198362.html