python find_element_by_css_selector(value)返回None

时间:2018-04-13 20:14:49

标签: python html css linux selenium

下面代表我通过其CSS选择器获取元素的元素标记“#xwt_widget_navigation__slidemenu__SlideOutNavigationButton_1”

<div class="xwtSlideMenuLevel0 hasIcon xwtSlideOutNavigationButton xwtSlideOutNavigationButtonFocused dijitFocused" data-dojo-attach-event="ondijitclick: _onItemClick, onmouseenter: _mouseEnter, onmouseleave: _mouseLeave" id="xwt_widget_navigation__slidemenu__SlideOutNavigationButton_1" widgetid="xwt_widget_navigation__slidemenu__SlideOutNavigationButton_1">
    <div class="xwtSlideOutNavigationButtonInner" tabindex="0" role="button" data-dojo-attach-point="buttonNode,focusNode" title="Topology">
        <div class="xwtSlideOutNavigationButtonIcon topologyIcon" data-dojo-attach-point="iconNode">
        </div>
        <div class="xwtSlideOutNavigationButtonTitle" data-dojo-attach-point="titleNode">
            <a href="#menuItem=%2Ftopology_nav_item_id" class="xwtSlideOutNavigationButtonLink" tabindex="-1">Topology</a>
        </div>
        <div class="xwtSlideOutNavigationArrow" data-dojo-attach-point="arrowNode">
            <span class="xwtSlideOutNavigationArrowIcon"></span>
       </div>
    </div>
</div>

问题出在我做的时候

topo = driver.find_element_by_css_selector("xwt_widget_navigation__slidemenu__SlideOutNavigationButton_1")
topo.click()

这将返回None,无错误或任何sort.Am在Linux cmd行上运行,并使用pyvirtualdisplay。当我做截图时,它没有显示发生了什么,但是当我使用pdb.set_trace()进行调试时,它可以逐步执行代码。我已经查看了StackOverflow和其他地方的示例,但我找不到类似或有用的东西。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为你缺少一个#,因为你的css_selector基本上使用的是元素id。请尝试以下方法:

topo = driver.find_element_by_css_selector("#xwt_widget_navigation__slidemenu__SlideOutNavigationButton_1")

或者

topo = driver.find_element_by_id("xwt_widget_navigation__slidemenu__SlideOutNavigationButton_1")