如何找到要在网站中单击的元素

时间:2019-04-20 14:15:10

标签: python-3.x selenium-webdriver xpath css-selectors webdriverwait

我需要填写一张表格。我开始使用硒。顺利登录后,将出现新屏幕。我需要单击左侧的一个选项卡才能打开需要填写的表格。此选项卡的文本为“ Alta registro compra”。我找不到点击那里的方法。

这是应该工作的代码部分,从我提交密码(登录)的那一刻起,我就等待该元素加载:

 <li id="establecimientos1"><a href="/aples/faces/web/registros    /alta_registro0.faces" style="padding-top: 5px;padding-bottom: 5px;padding-left:5px; background-color: #B1C3BE;height: 15px">
                <span style="vertical-align: 5px; cursor: pointer;">Alta registro compra
                </span></a>
        </li>'''

这是网站代码。我已经尝试使用xpath定位,结果相同...

<form id="j_id24" name="j_id24" method="post" action="/aples/faces/entrada.faces" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_id24" value="j_id24" />
    <div id="menu" style="position: relative; left: 0px; top: 0px">
    <ul id="menunavlist">
        <li id="establecimientos1"><a href="/aples/faces/web/registros/alta_registro0.faces" style="padding-top: 5px;padding-bottom: 5px;padding-left:5px; background-color: #B1C3BE;height: 15px">
                <span style="vertical-align: 5px; cursor: pointer;">Alta registro compra
                </span></a>

我希望该网站可以访问该表格,以便我可以开始查找需要填写的字段。但是什么也没发生。

1 个答案:

答案 0 :(得分:0)

要在文本为 Alta registro compra 的元素上click(),请诱使 WebDriverWait 使元素可点击您可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li#establecimientos1>a[href*='alta_registro0']>span"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@id='establecimientos1']/a[contains(@href, 'alta_registro0')]/span"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC