如何对WebElements进行排序

时间:2016-04-26 12:44:26

标签: python selenium selenium-webdriver

我正在尝试使用脚本/ for-loop来定位表单上的所有输入元素,并根据输入的类型发送字符串/数字键或执行select类

所以我得到了我的createForm:

<form id="createForm" class="submit-form" method="post" action="/BusinessAccount/82">

和元素的例子:

<input id="ReferralDate" class="form-control text-box single-line" type="datetime" value="" name="ReferralDate">

所以到目前为止我得到的是:

elements = driver.find_elements(by=By.XPATH, value =".//*[@id='createForm']//div//input") 

for element in elements:
    if element.tag_name == 'datetime':
        element.send_keys('11/11/2011')

不会让它运作

2 个答案:

答案 0 :(得分:2)

我会使用get_attribute然后代码可能会像这样

for element in elements:
    if element.get_attribute('type') == 'datetime':
        element.send_keys('11/11/2011')

答案 1 :(得分:0)

我建议您首先通过在输入字段中给出一些日期值来检查它是如何获取日期的格式

// in the foreach
if(result.ParentId){
    var promise = project.getOne(result.ParentId);
    $scope.result.push(promise);
    promise.then(function(results) { 
        return results.length ? project:null;
    }
}
// after forEach
$q.all($scope.results).then(function(results){
    // result is an array of mixed Project object or null value, just remove the null value and you're fine :) 
   var trueResults = [];
   for(var i = 0; i < results.length; i++){
      if(results[i]){
          trueResults.push(results[i]);
      }
   } 
   // now use trueResults
})

(dd-mm-yyyy) 

(dd/mm/yyyy) 

(mm/dd/yyyy) 

(mm-dd-yyyy) 

根据所采用的字符串格式,相应地传递该值。

希望它有所帮助。