Selenium webdriver 拆分类名

Selenium webdriver 拆分类名,selenium-webdriver,Selenium Webdriver,您好,在span中查找类名“icon-color-1”时,我发现“icon-color-1”根据条件更改为“icon-color-0”。需要将类名分成两部分 尝试了以下操作,但不是很有用: WebElement myAccountBoxElement=driver.findElement(By.className(“我的帐户框元素”); WebElement spanItem=MyAccountBoxeElement.findElements(按.tagName(“span”)); 布尔item

您好,在span中查找类名“icon-color-1”时,我发现“icon-color-1”根据条件更改为“icon-color-0”。需要将类名分成两部分

尝试了以下操作,但不是很有用:

WebElement myAccountBoxElement=driver.findElement(By.className(“我的帐户框元素”);
WebElement spanItem=MyAccountBoxeElement.findElements(按.tagName(“span”));
布尔itemColor=(spanItem.getAttribute(“类”)。包含(“item-color-1”)?真:假;

我已经有一段时间没有使用java了,但我会尝试一下,看看它是如何工作的

//简化跨度定位
WebElement spanItem=driver.findElement(By.cssSelector(“.my account box元素span”);
int colorNum=-1;
字符串[]classNames=spanItem.getAttribute(“类”).split(“”);
for(字符串类名称:类名称){
//html显示“图标颜色-”,代码显示“项目颜色-”
if(className.startsWith(“图标颜色-”){
colorNum=Integer.parseInt(className.replace(“图标颜色-”,“”));
打破
}
}
如果(colorNum==0){
//为item-color-0元素做一些事情
}else if(colorNum==1){
//为item-color-1元素做一些事情
}否则{
//例外情况
}

通过数组获取类名并将其拆分

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

函数验证(){
var inp_valid=/^[A-Z A-Z]{4,}$/;
var inpm\U 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(“输入”);
对于(变量i=0;i
因此,您的意思是,在获得跨度的类名后,需要检查类名是否以1或0结尾,对吗?是的,没错。需要执行item-color-1的子字符串。如果获取0,则状态为-1,否则状态为-2。如果您想让我知道如何使用“cssSelector”而不是XPath。@user2340124:一个很好的css选择器教程。对于selenium来说,以下内容非常有用:
+
:不
[foo=“bar”]
[foo~=“bar”]
[foo*=“bar”
[foo^=“bar”
[foo$=“bar]”,非常感谢。非常有用的链接。