Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于文本访问div内部的收音机_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 基于文本访问div内部的收音机

Java 基于文本访问div内部的收音机,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我有多个div,每个div都有一个单选按钮,我要找的是倾斜并点击每个div的单选按钮。 这里是HTML <div id="iff-campaigns"> <div id="iff-campaign52249" class="iff-campaign-container iffhidden" onmouseover="IffAdvertismentAction(52249,&quot;over&quot;);" onmouseout="IffAdverti

我有多个div,每个div都有一个单选按钮,我要找的是倾斜并点击每个div的单选按钮。 这里是HTML

<div id="iff-campaigns">
    <div id="iff-campaign52249" class="iff-campaign-container iffhidden" onmouseover="IffAdvertismentAction(52249,&quot;over&quot;);" onmouseout="IffAdvertismentAction(52249,&quot;out&quot;);">
        <div class="iff-title">Would you like to get paid to take Surveys and Fun IQ Tests?</div>
        <div class="iff-optin">
            <label>
                <input type="radio" name="iffinput-52249" id="iffinputyes-52249" value="Yes" onclick="IffAdvertismentSelect(52249,false,&quot;&quot;,false);">Yes</label>
            <label>
                <input type="radio" name="iffinput-52249" id="iffinputno-52249" value="No" onclick="IffAdvertismentSelect(52249,false,&quot;&quot;,false);">No</label>
        </div>
        <div id="div-cq52249" class="iff-div-customquestions-survey">
            <div class="clear"></div>
            <div id="div-first5224915243" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> First Name: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="ifffirst~52249~15243" name="ifffirst~52249~15243" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;ifffirst~52249~15243&quot;,&quot;first&quot;,1,1);" regfld=""> </div>
            </div>
            <div class="clear"></div>
            <div id="div-last5224915244" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> Last Name: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="ifflast~52249~15244" name="ifflast~52249~15244" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;ifflast~52249~15244&quot;,&quot;last&quot;,1,1);" regfld=""> </div>
            </div>
            <div class="clear"></div>
            <div id="div-email5224915245" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> Email Address: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="iffemail~52249~15245" name="iffemail~52249~15245" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;iffemail~52249~15245&quot;,&quot;email&quot;,1,1);" regfld="^[^<>s@]+(@[^<>s@]+(.[^<>s@]+)+)$"> </div>
            </div>
            <div class="clear"></div>
        </div>
        <div id="iff-rollup52249" class="iff-roleup"> </div>
    </div>
    <div id="iff-campaign52706" class="iff-campaign-container" onmouseover="IffAdvertismentAction(52706,&quot;over&quot;);" onmouseout="IffAdvertismentAction(52706,&quot;out&quot;);">
        <div class="iff-title">Would you like the days important news broken down into a quick and informative read each morning?</div>
        <div class="iff-optin">
            <label>
                <input type="radio" name="iffinput-52706" id="iffinputyes-52706" value="Yes" onclick="IffAdvertismentSelect(52706,false,&quot;&quot;,false);">Yes</label>
            <label>
                <input type="radio" name="iffinput-52706" id="iffinputno-52706" value="No" onclick="IffAdvertismentSelect(52706,false,&quot;&quot;,false);">No</label>
        </div>
        <div id="div-cq52706" class="iff-div-customquestions-survey">
            <div class="clear"></div>
            <div id="div-email5270620435" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> Email Address: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="iffemail~52706~20435" name="iffemail~52706~20435" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;iffemail~52706~20435&quot;,&quot;email&quot;,1,1);" regfld="^[^<>s@]+(@[^<>s@]+(.[^<>s@]+)+)$"> </div>
            </div>
            <div class="clear"></div>
        </div>
        <div id="iff-rollup52706" class="iff-roleup"> </div>
    </div>
    <div id="iff-campaign52912" class="iff-campaign-container" onmouseover="IffAdvertismentAction(52912,&quot;over&quot;);" onmouseout="IffAdvertismentAction(52912,&quot;out&quot;);">
        <div class="iff-title">Ready to take cooking to the next level? </div>
        <div class="iff-optin">
            <label>
                <input type="radio" name="iffinput-52912" id="iffinputyes-52912" value="Yes" onclick="IffAdvertismentSelect(52912,false,&quot;&quot;,false);">Yes</label>
            <label>
                <input type="radio" name="iffinput-52912" id="iffinputno-52912" value="No" onclick="IffAdvertismentSelect(52912,false,&quot;&quot;,false);">No</label>
        </div>
        <div id="div-cq52912" class="iff-div-customquestions-survey">
            <div class="clear"></div>
            <div id="div-first5291222515" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> First Name: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="ifffirst~52912~22515" name="ifffirst~52912~22515" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;ifffirst~52912~22515&quot;,&quot;first&quot;,1,1);" regfld=""> </div>
            </div>
            <div class="clear"></div>
            <div id="div-last5291222516" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> Last Name: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="ifflast~52912~22516" name="ifflast~52912~22516" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;ifflast~52912~22516&quot;,&quot;last&quot;,1,1);" regfld=""> </div>
            </div>
            <div class="clear"></div>
            <div id="div-email5291222517" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> Email Address: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="iffemail~52912~22517" name="iffemail~52912~22517" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;iffemail~52912~22517&quot;,&quot;email&quot;,1,1);" regfld="^[^<>s@]+(@[^<>s@]+(.[^<>s@]+)+)$"> </div>
            </div>
            <div class="clear"></div>
            <div id="div-zip5291222522" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> Zip: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="iffzip~52912~22522" name="iffzip~52912~22522" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;iffzip~52912~22522&quot;,&quot;zip&quot;,1,1);" regfld="(^d{5}$)|(^d{5}-d{4}$)|^([ABCEGHJKLMNPRSTVXY]d[ABCEGHJKLMNPRSTVWXYZ])+{0,1}(d[ABCEGHJKLMNPRSTVWXYZ]d)$"> </div>
            </div>
            <div class="clear"></div>
        </div>
        <div id="iff-rollup52912" class="iff-roleup"> </div>
    </div>
    <div id="iff-campaign52230" class="iff-campaign-container" onmouseover="IffAdvertismentAction(52230,&quot;over&quot;);" onmouseout="IffAdvertismentAction(52230,&quot;out&quot;);">
        <div class="iff-title">Would you like to receive FREE Severe Local Weather Alerts straight to your inbox? These can be life saving! </div>
        <div class="iff-optin">
            <label>
                <input type="radio" name="iffinput-52230" id="iffinputyes-52230" value="Yes" onclick="IffAdvertismentSelect(52230,false,&quot;&quot;,false);">Yes</label>
            <label>
                <input type="radio" name="iffinput-52230" id="iffinputno-52230" value="No" onclick="IffAdvertismentSelect(52230,false,&quot;&quot;,false);">No</label>
        </div>
        <div id="div-cq52230" class="iff-div-customquestions-survey">
            <div class="clear"></div>
            <div id="div-email5223015020" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> Email Address: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="iffemail~52230~15020" name="iffemail~52230~15020" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;iffemail~52230~15020&quot;,&quot;email&quot;,1,1);" regfld="^[^<>s@]+(@[^<>s@]+(.[^<>s@]+)+)$"> </div>
            </div>
            <div class="clear"></div>
            <div id="div-zip5223015025" class="iff-customquestion">
                <div class="iff-cqlabel"> <span>*&nbsp;</span> Zip: </div>
                <div class="iff-cqcontrol">
                    <input type="text" id="iffzip~52230~15025" name="iffzip~52230~15025" value="" class="iff-input-text" onblur="Ifffieldchange(&quot;iffzip~52230~15025&quot;,&quot;zip&quot;,1,1);" regfld="(^d{5}$)|(^d{5}-d{4}$)|^([ABCEGHJKLMNPRSTVXY]d[ABCEGHJKLMNPRSTVWXYZ])+{0,1}(d[ABCEGHJKLMNPRSTVWXYZ]d)$"> </div>
            </div>
            <div class="clear"></div>
        </div>
        <div id="iff-rollup52230" class="iff-roleup"> </div>
    </div>
</div>
我需要提取文本并单击每个div的单选按钮

List<WebElement> camp2 = driver.findElements(By.className("iff-title"));
                    System.out.println(camp2.size());
                    for (WebElement title2: camp2)
                    {
                        System.out.println("Camp Title - "+title2.getText());
                        String text = title2.getText();
                        if(text.isEmpty())
                        {
                            System.out.println("Null Value found");
                        }
                        else
                        {
                            WebElement div = driver.findElement(By.xpath("//div[contains(text(),'"+text+"')]"));
                            div.findElement(By.xpath("//input[@value='Yes']")).click();
                            System.out.println("In Else loop.");
                        }
                        //div[contains(text(),'Would you like a Gift Card for a FREE Website, Blog or Online Store?')]
                    }
List camp2=driver.findElements(By.className(“iff title”);
System.out.println(camp2.size());
for(WebElement标题2:camp2)
{
System.out.println(“Camp Title-”+title2.getText());
String text=title2.getText();
if(text.isEmpty())
{
System.out.println(“找到空值”);
}
其他的
{
WebElement div=driver.findElement(By.xpath(“//div[contains(text(),“+text+”)]”);
div.findElement(By.xpath(//input[@value='Yes'])。单击();
System.out.println(“在Else循环中”);
}
//div[contains(text(),“您想要免费网站、博客或在线商店的礼品卡吗?”)]
}
尝试以下操作:

//for yes radio button
driver.findElement(By.cssSelector("div.iff-optin label:nth-child(1) input")).click();

//for No radio button
driver.findElement(By.cssSelector("div.iff-optin label:nth-child(2) input")).click();
更新:

如果您只想为所有收音机选择“是”,则以下代码适用于您:

 List<WebElement> camp2 = driver.findElements(By.cssSelector("div.iff-optin label:nth-child(1) input"));

    System.out.println(camp2.size());

    for(WebElement ele :camp2){
        ele.click();


    }
List camp2=driver.findElements(By.cssSelector(“div.iff-optin标签:第n个子(1)输入”);
System.out.println(camp2.size());
for(WebElement ele:camp2){
ele.click();
}

请您进一步解释一下,我需要单击div中的单选按钮,问题是有多个具有相同id的div,因此,我要做的是基于文本锁定一个div,然后移动到该div中的单选元素并单击它。您想单击一个单选按钮并单击它以获取其相关数据吗?能否再次
System.out.println(camp2.size())
List camp2=driver.findElements(By.className(“iff title”))之后
它应该返回4。它只单击第一个div的单选选项:List camp2=driver.findElements(By.className(“iff title”);对于(WebElement title2:camp2){System.out.println(“Camp Title-”+title2.getText());driver.findelelement(By.cssSelector(“div.iff-optin label:nth child(1)input”)。单击();}结果是什么?它只单击第一个单选按钮,我有多个div和单选按钮,但在HTML代码中只有两个单选按钮
 List<WebElement> camp2 = driver.findElements(By.cssSelector("div.iff-optin label:nth-child(1) input"));

    System.out.println(camp2.size());

    for(WebElement ele :camp2){
        ele.click();


    }