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;
4

2 回答 2

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
}
于 2013-05-08T21:39:26.970 回答
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>
于 2016-01-22T13:43:49.160 回答