我正在尝试抓一个网站,问题是,我无法与网站上的隐藏元素进行交互。代码如下:
点击
之前li class="header-nav__item login header-item-is-hidden" data-toggle="dropdown" style="display:list-item"
<a class="header-nav__link" href="#login-panel" aria-controls="login-panel" aria-expanded="true" aria-haspopup="true"></a>
<script src="../../../Scripts/Login/Login.js" type="text/javascript"></script>
<script src="../../../Scripts/Login/2FALogin.js" type="text/javascript"></script>
<script src="../../../Scripts/common/error-handing.js" type="text/javascript"></script>
<div id="Login_pnlDownTime"></div>
<script type="text/javascript"></script>
li
点击
li class="header-nav__item jp-login header-item-is-hidden is-active" data-toggle="dropdown" style="display:list-item"
<a class="header-nav__link" href="#login-panel" aria-controls="login-panel" aria-expanded="true" aria-haspopup="true"></a>
<script src="../../../Scripts/Login/Login.js" type="text/javascript"></script>
<script src="../../../Scripts/Login/2FALogin.js" type="text/javascript"></script>
<script src="../../../Scripts/common/error-handing.js" type="text/javascript"></script>
<div id="Login_pnlDownTime"></div>
<script type="text/javascript"></script>
li
我的源代码
driver = webdriver.Firefox()
driver.get("http://www.website.com/Home.aspx")
print driver.page_source
ele = driver.find_element_by_xpath("//ul[@class = 'header-nav']/li[3]")
#this is deon because the list element here is the third element in the list
ele.click()
此处单击元素时,下拉列表不可见。此外,ele.click()
正在模拟悬停在元素上的行为,而不是单击元素。
点击下拉列表的元素的源代码
div id="Login_pnlDownTime" /div
div id="login-panel" class="js-header-panel header-nav__dropdown right" aria-hidden="true" /div
::before
a class="privilege-promo form-section" href="/EN/enrol-now.aspx">/a
div class="privilege-form form-section"
fieldset class="frm frm--vertical"
input id="Login_hddnInvalidEmail" type="hidden" value="Invalid Email Id" name="ctl00$Login$hddnInvalidEmail"> /input
input id="Login_hddnInvalidNumber" type="hidden" value="Invalid Number" name="ctl00$Login$hddnInvalidNumber"> /input
input id="Login_hddnInvalidMobileNumber" type="hidden" value="Invalid Mobile Number" name="ctl00$Login$hddnInvalidMobileNumber"> /input
input id="Login_hddnFlashMessageDelay" type="hidden" value="10000" name="ctl00$Login$hddnFlashMessageDelay"> /input
button id="Login_btnSubmitLogin" class="btn btn-primary align-right" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBac…n$btnSubmitLogin", "", true, "LoginPage", "", false, false))" value="Continue" name="ctl00$Login$btnSubmitLogin" type="submit"> /button
如何点击元素?
答案 0 :(得分:0)
有一个元素不是(变得)可见(css: display:none ),另一个元素是从DOM ex中删除的。 Javascript的 removeChild() 方法。
点击html之前/之后 它不清楚元素/它在哪里发生了什么。您是否会使用开发人员工具实时检查并在您的问题中发布截图/ html?
我发现只有class='header-nav'
header-nav__dropdown
的{{1}}不是header-nav
的元素。你应该知道它!
如果您想要以header-nav
开头的课程找到,请使用starts-with()
函数。
其次,根据你的xpath,元素是div
,而不是ul
。因此,无法找到并点击div id="login-panel" class="js-header-panel header-nav__dropdown right" aria-hidden="true" /div
。
您可以使用ul
和li
s,class =&#39; header-nav&#39;将您真正的HTML粘贴到您的问题中吗?等?
我无法与之互动,因为它说该元素不可见
在我看来,你还没有掌握浏览器中的web开发工具。你必须能够在开发中看到所有不可见的元素。工具检查员。请参阅this和this帖子,了解我的工作方式。