2013-05-08 71 views
0
<section class="my-account-box-element box box-decoration-3 gutter-row-2"> 
    <div class="box-inner"> 
     <div class="box-content group"> 
      <div class="box-panel"> 
       <ul class="box-panel-nav stack-list"> 
        <li class="gutter-col-4"> 
         <span class="item icon-home icon-color-1"> 
          <a class="link-color-1" href="/myaccount">Моята Сметка</a> 
         </span> 
        </li> 

嗨,虽然在“icon-color-1”的跨度中找到类名称,但发现“icon-color-1”更改为“icon-color-0”条件。需要类名分成两个部分拆分类名称

试过以下,但不是非常有用:

WebElement myAccountBoxElement = driver.findElement(By.className("my-account-box-element")); 
WebElement spanItem = myAccountBoxElement.findElements(By.tagName("span")); 
boolean itemColor = (spanItem.getAttribute("class").contains("item-color-1")) ? true : false; 
+0

所以你的意思是你得到的跨度的类名之后,你需要检查,如果类名以1或0结束, 是对的吗? – 2013-05-08 21:15:46

+0

是的。的确如此。需要做item-color-1的子字符串。如果得到0,则状态-1否则状态-2。 – user2340124 2013-05-08 21:24:17

回答

0

我没有使用Java进行了一段时间,但会给它一个尝试,看看它是如何工作的。

// simplify the span locating 
WebElement spanItem = driver.findElement(By.cssSelector(".my-account-box-element span")); 

int colorNum = -1; 
String[] classNames = spanItem.getAttribute("class").split(" "); 
for(String className : classNames) { 
    // html says "icon-color-", your code says "item-color-" 
    if(className.startsWith("icon-color-")) { 
     colorNum = Integer.parseInt(className.replace("icon-color-", "")); 
     break; 
    } 
} 

if (colorNum == 0) { 
    // do stuff for item-color-0 element 
} else if (colorNum == 1) { 
    // do stuff for item-color-1 element 
} else { 
    // exception 
} 
+0

非常感谢。它一举成功! :D – user2340124 2013-05-09 07:04:46

+0

如果你让我知道如何使用“cssSelector”而不是xpaths。 – user2340124 2013-05-09 07:06:04

+0

@ user2340124:一个很好的CSS选择器教程[你必须记住的30个CSS选择器](http://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize /)。对硒而言,以下方法足够有用:'''''','''','+',':not','[foo =“bar”]''''foo〜=“bar”]' ,'[foo * =“bar”]','[foo^=“bar”]','[foo $ =“bar”]' – 2013-05-09 09:29:57

0

获取类的名称通过数组和拆分它...

<script type="text/javascript"> 
    function Validations(){ 

     var inp_valid=/^[A-Z a-z]{4,}$/; 
     var inpm_valid=/^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{3}$/; 
     var inpn_valid= /^\d{10}$/; 

     var inp = document.querySelectorAll("input"); 
      for (var i = 0; i < inp.length; i++) 
      { 
       var inpslipt = inp[i].className.split(' '); 

        for (var j =0; j < inpslipt.length; j++) 
        { 
         if(inpslipt[j] == "names") 
         { 
          if ((inp[i].value == "") || !inp_valid.test(inp[i].value)) 
          { 
           inp[i].focus(); 
           alert("please enter a valid name"); 
           return false; 
          } 
         } 
         else if(inpslipt[j] == "mail") 
         { 
          if ((inp[i].value == "") || !inpm_valid.test(inp[i].value)) 
          { 
           inp[i].focus(); 
           alert("please enter a valid email"); 
           return false; 
          } 
         } 
         else if(inpslipt[j] == "number") 
         { 
          if ((inp[i].value == "") || !inpn_valid.test(inp[i].value)) 
          { 
           inp[i].focus(); 
           alert("please enter a valid number"); 
           return false; 
          } 
         } 
        } 
      } 
      document.forms["myform"].submit(); 
    } 
</script>