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

我们如何先选择自动隐藏值选项,然后选择所需的选项?

太叔马鲁
2023-03-14

在选择域之前:

div class="col-xs-12">
                    <label class=" required-field" for="Domain">Domain</label>
                    <select autocomplete="off" class="form-control select2-hidden-accessible valid" data-val="true" data-val-required="The 'Domain' field is required." id="Domain" name="Domain" tabindex="-1" aria-hidden="true" aria-describedby="Domain-error" aria-invalid="false">
                    <option value="">Select a domain...</option>
</select><span class="select2 select2-container select2-container--bootstrap select2-container--below select2-container--focus" dir="ltr" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-labelledby="select2-Domain-container"><span class="select2-selection__rendered" id="select2-Domain-container" title="Select a domain...">Select a domain...</span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>
                    <span class="field-validation-valid text-danger" data-valmsg-for="Domain" data-valmsg-replace="true"></span>
                </div>

域名选择后:

<select autocomplete="off" class="form-control select2-hidden-accessible" data-val="true" data-val-required="The 'Domain' field is required." id="Domain" name="Domain" tabindex="-1" aria-hidden="true"><option value="">Select a domain...</option>
<option value="ABC.abc.com">ABC.abc.com</option></select>
<span class="select2 select2-container select2-container--bootstrap select2-container--below select2-container--focus" dir="ltr" style="width: 100%;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-labelledby="select2-Domain-container"><span class="select2-selection__rendered" id="select2-Domain-container" title="ABC.abc.com">ABC.abc.com</span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>

当我们启动网站时,它将显示域名下拉列表和选项值为“选择域”。如果我选择“选择域”选项,将显示实际域名。(这意味着在我选择选择域选项之前,不会显示有效域名列表)

我是硒新手,所以我试着使用find_element_by_id和可见文本选项选择该选项。

我尝试了下面的python代码。但它不起作用。

select_element = Select(driver.find_element_by_id('Domain'));
print ([o.text for o in select_element.options])
select_element.select_by_visible_text('Select a domain...');
select_element1 = Select(driver.find_element_by_id('Select a domain...'));
select_element.select_by_value('XYZ.xyz.com')
wait = WebDriverWait(driver, 10 )
print('success')

我需要按以下顺序选择:

>

  • 选择域按钮
  • 接下来,我需要选择自动隐藏文本“选择域…”选项值。然后将显示域值。(注意:Utill Select a Domain…选项实际域名未列出)(另一个重要点有时即使选择Select Domain也会自动隐藏未立即列出的域列表可能需要一些等待时间)

    加载域列表的等待期

    如果任何共享Python完整代码的人被占用

  • 共有1个答案

    谢华彩
    2023-03-14

    在选择< code >选择域之前和之后,您的< code>select元素中的< code>class名称发生了变化...

    以前:

    class="form-control select2-hidden-accessible valid"
    

    之后:

    class="form-control select2-hidden-accessible"
    

    似乎您需要 Web驱动程序等待,直到元素visibility_of_element_located

    导入此:

    from selenium.webdriver.support import expected_conditions
    from selenium.webdriver.support.ui import WebDriverWait
    

    然后尝试:

    select_element = Select(driver.find_element_by_id('Domain'));
    print ([o.text for o in select_element.options])
    select_element.select_by_visible_text('Select a domain...');
    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, '//*[@id="Domain" and @class="form-control select2-hidden-accessible"]')))
    slct = Select(driver.find_element_by_xpath('//*[@id="Domain" and @class="form-control select2-hidden-accessible"]'));
    
    #update here
    driver.find_element_by_xpath('//*[@id="Domain" and @class="form-control select2-hidden-accessible"]').click()
    time.sleep(1)
    
    slct.select_by_visible_text('XYZ.xyz.com')
    #slct.select_by_value('XYZ.xyz.com')
    print('success')
    
     类似资料:
    • 我有两个<代码> 当用户从第一个选择框中选择一个值时,我希望第二个选择框只显示连接的值。 我的代码: 因此,当用户从第一个选择框M中选择“test1”时,他在第二个选择框上只会看到“test2”、“test3”和“test4”;第一个框中的“test2”将在第二个框中显示“test6”、“test7”和“test8”。 如何使用JavaScript解决此问题?

    • 问题内容: 好的,一段时间以来,我一直在寻找答案,但我遇到的所有问题(甚至在搜索javascript时)都与jQuery结合在一起!没人再使用普通的javascript吗?!? 因此,我想要一个下拉列表(使用多个选项进行选择)。选择某个选项后,我希望显示一个隐藏的div。 然后,我尝试使用以下JavaScript代码: 我猜我的问题出在选项中的onClick触发器上,但是我不确定还有什么用?或者,

    • 我想创建一些表格与自动填充价格在输入框,但我不知道如何实现到我的代码。首先我有选择选项,然后选择选项后,输入框上的价格会自动生成,然后我输入折扣值,然后总价格会自动生成(基本价格-折扣%)。这是我的代码: null null

    • 我想调用一个函数时,选择的任何选项。类似于这样: 但不知何故不起作用。有人能帮忙吗。 请注意 我不想捕获更改事件,如果我选择已经选择选项,则不会触发更改事件

    • 问题内容: 使用核心jQuery,如何删除选择框的所有选项,然后添加一个选项并选择它? 我的选择框如下。 编辑:以下代码有助于链接。但是,(在Internet Explorer中)未选择添加的选项。(我确实在和中都使用了相同的“值” 。) 编辑:试图使其模仿此代码,每当重置页面/窗体时,我都使用以下代码。该选择框由一组单选按钮填充。距离更近,但是未像使用时那样显示选择的选项。我现有的代码没什么错-

    • 如果选择选项值是从循环中提取的,那么如何禁用该选项值?是否有其他方法解决此问题? 示例输出在循环和我想禁用选项值6和7。谢谢帮忙。