html tool

2015年5月10日星期日

selenium 页面选择内容动态加载问题

问题:参见下图的选择类别,定位时总是提示无法找到控件
解决:
使用css_selector定位
考虑到二级和三级菜单是动态出现的,加入隐式判断等待
java代码如下:

   private void _change_kind_seach_x() {
    String __doc__="添加科目--点击方式";
       oppor_Test.Message_print("start: "+__doc__);
       driver.findElement(By.cssSelector("div.wj.clearfix.wj_bg01>div>div>div>ul>li:nth-child(5)")).click();
       
       String sencond=".winScroll01.wj_width01.h294:nth-child(2)>div>ul>li:nth-child(2)";
       (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(sencond)));
       driver.findElement(By.cssSelector(sencond)).click();
       
       driver.findElement(By.cssSelector("div[style='padding: 0px; top: 0px;']>ul>li:nth-child(3)")).click();
       
       oppor_Test.Message_print("end: "+__doc__);
   }

python代码如下
 def change_kind_seach_x(self):
  """添加参数-选择商机类目(change click)"""
  print "start: change click"
  second_change_css=".winScroll01.wj_width01.h294:nth-child(2)>div>ul>li:nth-child(2)"
  driver = self.driver

         driver.find_element_by_css_selector("div.wj.clearfix.wj_bg01>div>div>div>ul>li:nth-child(5)").click()
  WebDriverWait(driver,10).until(EC.presence_of_element_located((By.CSS_SELECTOR,second_change_css)))
         driver.find_element_by_css_selector(second_change_css).click()
         driver.find_element_by_css_selector("div[style='padding: 0px; top: 0px;']>ul>li:nth-child(3)").click()

  print "end: "+self.change_kind_seach.__doc__
  print "*"*20

没有评论:

发表评论