Python выпадающий список селена, связанный с переключателем, выбран неправильно - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь автоматизировать материал в Python Selenium. У меня есть набор переключателей со связанными раскрывающимися списками (при нажатии переключателя активируется соответствующий раскрывающийся список). Значение параметра для выпадающего списка - это мой ввод, который будет варьироваться для каждой записи в l oop. Я не буду знать, какой выпадающий будет иметь мой вход, поэтому я использую try, чтобы проверить оба выпадающих списка, активируя переключатели по одной. Но мой код продолжается без выбора раскрывающегося списка. В приведенном ниже примере мой ввод находится во втором раскрывающемся списке, но код выбирает первую радиокнопку и запускает except без выбора раскрывающегося списка.

Python Код:

try:
                    driver.find_element_by_id('rb_NEXTACTION_1').click()
                    driver.find_element_by_xpath("//select[@name='ADMINEVENTID']/option[@value='%s']"%x_eventid).click() ## eventid
                except:
                    try:
                        driver.find_element_by_id('rb_NEXTACTION_2').click()
                        driver.find_element_by_xpath("//select[@name='ADMINEVENTID']/option[@value='%s']"%x_eventid).click() ## eventid
                    except:
                        x_dummy1 = 1

HTML Код (для справки):

<label class='radioinputwrapper' for='rb_NEXTACTION_1'><input id='rb_NEXTACTION_1' name='NEXTACTION' onclick="HandleEventChange(this);
                var uploadfilediv = document.getElementById('uploadfilediv');
                if (uploadfilediv) {
                    uploadfilediv.innerHTML = uploadfilediv.innerHTML;
                }
                var confirmmatchbutton = document.getElementById('confirmmatchbutton');
                if (confirmmatchbutton) {
                    confirmmatchbutton.style.display = 'none';
                }" style='position:relative; vertical-align: top; margin-left: 5px;' type='RADIO' value='EVENT'>Apply the next event: <br></label><span class="eventspan l__margin--xlarge" onclick="
        if (this.childNodes[0].disabled) {
            jQuery(this).prev().click();
        }
    "><select disabled='1' name='NEXTEVENTID' onchange="jQuery('[name=NEXTACTION]').filter('[value=EVENT]').prop('checked', true);HandleEventChange(this);" type='SELECT'><option value=""><option value='123'>Some Text</option></select>
</span> <br/><br/>

<label class='radioinputwrapper' for='rb_NEXTACTION_2'><input id='rb_NEXTACTION_2' name='NEXTACTION' onclick="HandleEventChange(this);
                    var uploadfilediv = document.getElementById('uploadfilediv');
                    if (uploadfilediv) {
                        uploadfilediv.innerHTML = uploadfilediv.innerHTML;
                    }
                    var confirmmatchbutton = document.getElementById('confirmmatchbutton');
                    if (confirmmatchbutton) {
                        confirmmatchbutton.style.display = 'none';
                    }" style='position:relative; vertical-align: top; margin-left: 5px;' type='RADIO' value='ADMIN'>Move the record to another location in the workflow: <br></label><span class="eventspan l__margin--xlarge" onclick="
            if (this.childNodes[0].disabled) {
                jQuery(this).prev().click();
            }
        "><select disabled='1' name='ADMINEVENTID' onchange="jQuery('[name=NEXTACTION]').filter('[value=ADMIN]').prop('checked', true);HandleEventChange(this);" type='SELECT'><option value=""><option value='150'>Some Text</option>
...