Выберите переключатель PrimeFaces с Selenium Webdriver

Я пытаюсь написать тесты Селена, чтобы выбрать переключатель. Ниже приведен html из "view Source".

<table id="surveyForm:surveyUrlType" class="ui-selectoneradio ui-widget" style="width:100%;margin-top:10px;margin-bottom: 10px;">
    <tbody>
    <tr>
        <td>
            <div class="ui-radiobutton ui-widget">
                <div class="ui-helper-hidden-accessible">
                    <input id="surveyForm:surveyUrlType:0" name="surveyForm:surveyUrlType" type="radio" value="TYPED" checked="checked" onchange="com.ssi.feasibility.surveyView.showSurveyType(this);">
                </div>
                <div class="ui-radiobutton-box ui-widget ui-corner-all ui-state-default ui-state-active">
                    <span class="ui-radiobutton-icon ui-icon ui-icon-bullet"></span>
                </div>
            </div>
        </td>
        <td><label for="surveyForm:surveyUrlType:0">Enter Survey URL</label></td>
        <td>
            <div class="ui-radiobutton ui-widget">
                <div class="ui-helper-hidden-accessible">
                    <input id="surveyForm:surveyUrlType:1" name="surveyForm:surveyUrlType" type="radio" value="FILE" onchange="com.ssi.feasibility.surveyView.showSurveyType(this);">
                </div>
                <div class="ui-radiobutton-box ui-widget ui-corner-all ui-state-default">
                    <span class="ui-radiobutton-icon"></span>
                </div>
            </div>
        </td>
        <td><label for="surveyForm:surveyUrlType:1">Upload Survey URLs</label></td>
    </tr>
    </tbody>
</table>

Я хочу выбрать переключатель "загрузить URL-адреса опроса".

Я пробовал несколько разных подходов, чтобы выбрать радиокнопку. Вот несколько:

        $("#surveyFormsurveyUrlType").click();

        This gives me the error : 
        $("#surveyForm:surveyUrlType:1").first().click()

Error-элемент не кликабелен в точке (809, 367). Другой элемент получит щелчок: ...

ниже дайте мне NoSuchElementFound:

        driver.findElement(By.id("surveyForm:surveyUrlType:1")).click()
        driver.findElement(By.xpath("//input[@type='radio' and @id='surveyForm:surveyUrlType:1']")).click()
        driver.findElement(By.xpath("//input[@value='FILE']")).click()
        driver.findElement(By.cssSelector("#surveyForm:surveyUrlType:1")).click()

ниже не дают мне никакой ошибки, но они также не выбирают переключатель.

        $(".ui-radiobutton-box ui-widget ui-corner-all ui-state-default")[1].click()
        $(".ui-radiobutton-box ui-widget ui-corner-all ui-state-default").click()
        $("#surveyForm:surveyUrlType").find(".ui-radiobutton-box ui-widget ui-corner-all ui-state-default").find("span").click()

но ничего из этого не работает. Что я упускаю?

3 ответов


вот как я получил его, чтобы работать, наконец !!

 driver.findElement(By.cssSelector("label[for='surveyForm\:surveyUrlType\:1']")).click()

попробовать

WebElement element = new WebDriverWait(Driver,30).until(ExpectedConditions.elementToBeClickable(By.id("surveyForm:surveyUrlType:1")));
element.click();

у меня есть следующий код в Java

lst=driver.findElements(by_name("surveyForm:surveyUrlType"))
   for(condition)
      option.click()

в Python я решил проблему таким образом:

lst=driver.find_elements_by_name("surveyForm:surveyUrlType")
for i in lst:
   if(i.text=="Enter Survey")
       i.click()
   elif(i.text=="Upload Survey URLs")
       i.click()

если вышеупомянутый не помог попробовать этот

driver.findElement(by_class_name("ui-radiobutton-icon ui-icon ui-icon-bullet")).click()
driver.findElement(by_class_name("ui-radiobutton-icon")).click()