当前位置: 首页 > 知识库问答 >
问题:

使用selenium java我想自动化一个带有11个问题的调查页面。每个问题都有多个答案

焦宁
2023-03-14
    <div id="survey-container"><div id="navigation-survey" style="display: none;"><strong>Pas NaN<span> / 11</span></strong><ul><li style="display: none;"><a class="isDisabled">1</a></li><li style="display: none;"><a class="isDisabled">2</a></li><li><a class="isDisabled">3</a></li><li><a class="isDisabled">4</a></li><li><a class="isDisabled">5</a></li><li><a class="isDisabled">6</a></li><li><a class="isDisabled">7</a></li><li><a class="isDisabled">8</a></li><li><a class="isDisabled">9</a></li><li><a class="isDisabled">10</a></li><li><a class="isDisabled">11</a></li><li><a class="isDisabled">12</a></li><li><a class="isDisabled">14</a></li></ul></div> <div class="start-survey-container"><div class="questions columns-2"><div><strong class="title">NaN. Selecteaza varsta</strong> <p class="description" style="display: none;"></p> <div class="question"><strong class="title">Selecteaza varsta</strong> <div class="answers"><label><img class="icon" style="display: none;"> <input type="radio" name="select-1" value="0">    18-30   </label></div><div class="answers"><label><img class="icon" style="display: none;"> <input type="radio" name="select-1" value="1">    31-50   </label></div><div class="answers"><label><img class="icon" style="display: none;"> 
<input type="radio" name="select-1" value="2">    51-70   </label></div><div class="answers"><label><img class="icon" style="display: none;"> <input type="radio" name="select-1" value="3">    71-   </label></div> </div> <div class="disclaimer" style="display: none;"><label><input type="checkbox" id="disclaimer"> Text</p></div> <div classname="clearfix"></div> <div class="actions"><a id="prev" class="btn gray" style="display: none;">   Inapoi  </a> <a id="next" class="btn isDisabled" style="display: none;">   Continua  </a></div></div>
<div><strong class="title">NaN. Selecteaza sex</strong> <p class="description" style="display: none;"></p> <div class="question"><strong class="title">Selecteaza sex</strong> <div class="answers"><label><img class="icon" style="display: none;"> <input type="radio" name="select-2" value="0">    Masculin   </label></div><div class="answers"><label><img class="icon" style="display: none;"> <input type="radio" name="select-2" value="1">    Feminin   </label></div> </div>  
@FindBy(css = "#survey-container input[type='radio'], input[value='0']")
    WebElement years;

@FindBy(css = "#survey-container > div.start-survey-container > div.questions.columns-2 > div:nth-child(2) > div.question > div:nth-child(3) > label > input[type=radio]")
    WebElement sex;

    @FindBy(css = "#survey-container > div.start-survey-container > div.questions.columns-2 > div:nth-child(1) > div.question > div:nth-child(2) > label")
    WebElement startSurvey;

如果问题不是很清楚,如果你能告诉我如何根据StackOverflow规则写出好的问题,我将不胜感激。这里有新的镜头。谢谢!

问题是:调查

共有1个答案

丁念
2023-03-14

你能检查一下下面的代码吗,我希望这会有帮助

WebElement element = driver.findElement(By.xpath("((//input[@name='select- 
                    1'])[1])"));
WebElement element2 = driver.findElement(By.xpath(((//input[@name='select- 
                    2'])[1])"));
WebElement element3 = driver.findElement(By.xpath("//*[@id='start- 
                    survey']"));

JavascriptExecutor executor = (JavascriptExecutor) driver;
     
     executor.executeScript("arguments[0].click();", element);   
     executor.executeScript("arguments[0].click();", element2);
     executor.executeScript("arguments[0].click();", element3);

我已经使用JavascriptExecutor接口与元素交互,与前面一样,至少这是可行的,您可以根据需要对其进行增强。

  • 未跟随@findby。
 类似资料:
  • 下面是fiddle http://jsfiddle.net/sgtrx/中的代码(应该在早些时候完成,对不起) 好的,我的导航栏在Div包装器内,在标题下,在内容区域(主体)的顶部。 我是个新手,所以请原谅我可能犯的任何错误。 当我添加边框来分隔每个块(按钮或文本)时,它很好地分隔了按钮,然而,它在导航栏的末尾(右侧)留下了一个小空格。 包装器Div是1000px,我有5个按钮,每个200px,因

  • 有没有一种方法可以不使用联接来回答这个问题? 编写一个查询,为每个客户X找到至少订购了一种与X共同产品的另一个客户Y。找到所有这样的客户对(X,Y),并针对每对找到重叠产品的数量。因此,查询应该有三列。按重叠产品的数量对结果进行排序。 问题使用https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all数据库。 使用联接,我

  • 本文向大家介绍解决vue多个路由共用一个页面的问题,包括了解决vue多个路由共用一个页面的问题的使用技巧和注意事项,需要的朋友参考一下 在日常的vue开发中我们可能会遇见多个路由需要共用一个页面的需求,特别是当路由是通过动态添加的,不同的路由展示的东西只是数据不同其他没有变化。例如: 这种情况的时候,我们发现,其实我们的页面在第一次加载成功后就不会再加载了。所以页面一直显示第一次加载的数据,给人的

  • 为什么最后输出的是“WuffRingding”而不是“RingdingRingding”? 为什么最终输出是“颤动”而不是“振铃”?为什么最终输出是“颤动”而不是“振铃”?

  • 我在pset3(cs50)中做tideman问题,但是我不能区分我的程序和函数look_pairs的正确程序之间的区别。 这是我的程序,我在正确的程序之间做了一点区别。我没有判断makeCycle(winner,I)的返回,而是返回这个函数,你可以在我的代码中看到区别。 这是正确的版本,但我认为我的程序和正确的版本是一样的,我不知道为什么我的程序会造成这个错误。