zoukankan      html  css  js  c++  java
  • Selenium2.0 Webdriver 随笔

    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

    [csharp] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);  
    [csharp] view plain copy
     
    1. ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);  



    2. Use Location to view

    Use LocationInView property need use RemoteWebdriver and RemoteWebElement

    Code like:

    [csharp] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. RemoteWebdriver rw = new RemoteWebdriver();  
    2. RemoteWebElement re = rw.FindelementOnPage(By.Id("id"));  
    3. re.LocationInView;  
    [csharp] view plain copy
     
      1. RemoteWebdriver rw = new RemoteWebdriver();  
      2. RemoteWebElement re = rw.FindelementOnPage(By.Id("id"));  
      3. re.LocationInView;  

    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)坐标点),做一下点击操作即可

     
  • 相关阅读:
    mysql对库,表,数据类型的操作以及完整性约束
    mysql数据库初步了解
    响应式及Bootstrap
    事件流丶事件对象
    JQuery初识(三 )
    JQuery初识(二)
    JQuery初识
    sencha touch tpl 实现按钮功能
    sencha touch 分享到微博扩展
    sencha touch 隐藏滚动条样式的几种方式
  • 原文地址:https://www.cnblogs.com/111testing/p/7198362.html
Copyright © 2011-2022 走看看