Python 3.x Selenium和Python中的XPATH问题

Python 3.x Selenium和Python中的XPATH问题,python-3.x,windows,selenium,xpath,selenium-chromedriver,Python 3.x,Windows,Selenium,Xpath,Selenium Chromedriver,我现在正在尝试自动化一些服务组件。我所做的每一件事都是在工作,下面的除外 下面是该站点的代码片段 <select aria-required="true" aria-labelledby="label.cmdb_ci_netgear.u_criticality" ng-non-bindable="true" name="cmdb_ci_netgear.u_criticality"

我现在正在尝试自动化一些服务组件。我所做的每一件事都是在工作,下面的除外

下面是该站点的代码片段

    <select aria-required="true" 
                    aria-labelledby="label.cmdb_ci_netgear.u_criticality"
                    ng-non-bindable="true" name="cmdb_ci_netgear.u_criticality" 
                    id="cmdb_ci_netgear.u_criticality" 
                    onchange="onChange('cmdb_ci_netgear.u_criticality');" style="; " 
                    class="form-control" mandatory="true" aria-readonly="false">
        <option value="" role="option">-- None --</option>
        <option value="Level_1" role="option">Level 1</option>
        <option value="Level_2" role="option">Level 2</option>
        <option value="Level_3" role="option">Level 3</option>
        <option value="Level_4" role="option">Level 4</option>
        <option value="Level_5" role="option">Level 5</option>
        <option value="Level_6" role="option">Level 6</option>
        <option value="0" role="option">0</option>
        <option value="Not_Agreed" role="option">Not Agreed</option>
        <option value="level 1" role="option">level 1</option>
        <option value="1" role="option">1</option>
        <option value="3843" role="option">3843</option>
    </select>
所有的指纹和睡眠都是我试图弄清楚为什么选择被关闭。 下面是self.catol的简化版本

    CMDB_CAT = {'name': ['//*[@id="cmdb_ci_netgear.name"]', 'somename'],
    'u_managed_b': ['//*[@id="sys_display.cmdb_ci_netgear.u_managed_by"]', 'IT'],
    'u_common_name' : ['//*[@id="cmdb_ci_netgear.u_common_name"]', 'somecommonname'],
    'u_visible_to' : ['//*[@id="cmdb_ci_netgear.u_visible_to"]', 'IT'],
    'install_status' : ['//*[@id="cmdb_ci_netgear.install_status"]', 'Active'],
    'u_criticality' : ['//*[@id="cmdb_ci_netgear.u_criticality"]', 'Level_3'],
    }
如果u_临界性为“3级”,则应设置“/*[@id=cmdb_ci_netgear.u_临界性]/选项[4]”

一切都表明这正在发生,但显示“级别4”的字段除外

感谢您的帮助。

您可以使用selenium select类来选择项目并获取文本值。请检查以下选项。查看此帮助是否有效

from selenium.webdriver.support.ui import Select
select=Select(driver.find_element_by_id('cmdb_ci_netgear.u_criticality'))
select.select_by_index(3) # First item of the select index is always 0
print(select.first_selected_option.text)

    CMDB_CAT = {'name': ['//*[@id="cmdb_ci_netgear.name"]', 'somename'],
    'u_managed_b': ['//*[@id="sys_display.cmdb_ci_netgear.u_managed_by"]', 'IT'],
    'u_common_name' : ['//*[@id="cmdb_ci_netgear.u_common_name"]', 'somecommonname'],
    'u_visible_to' : ['//*[@id="cmdb_ci_netgear.u_visible_to"]', 'IT'],
    'install_status' : ['//*[@id="cmdb_ci_netgear.install_status"]', 'Active'],
    'u_criticality' : ['//*[@id="cmdb_ci_netgear.u_criticality"]', 'Level_3'],
    }
from selenium.webdriver.support.ui import Select
select=Select(driver.find_element_by_id('cmdb_ci_netgear.u_criticality'))
select.select_by_index(3) # First item of the select index is always 0
print(select.first_selected_option.text)
select=Select(driver.find_element_by_id('cmdb_ci_netgear.u_criticality'))
select.select_by_value("Level_3")
print(select.first_selected_option.text)
element = driver.find_element_by_xpath("//select[@id='cmdb_ci_netgear.u_criticality']")
all_options = element.find_elements_by_tag_name("option")
for option in all_options:
    print("Value is: %s" % option.get_attribute("value"))
    option.click()