【问题标题】:Unable to locate button element using selenium webdriver无法使用 selenium webdriver 定位按钮元素
【发布时间】:2015-03-03 09:31:19
【问题描述】:

我一直在尝试找到一个嵌套按钮元素 (<button class="dwnload_xls") 并单击它,但没有成功。有人可以帮我吗? 我已经尝试过(分别)使用以下方法,但它们都给出了相同的响应:

无法定位元素

我的代码:

frame = WebDriverWait(browser, 30).until(lambda x: x.find_element_by_xpath(".//*[contains(@class, 'downloadxlsform')]//div[contains(@class,'downloadform')]//button[contains(@class, 'dwnload_xls')]"))

HTML 代码:

<form action="/bdataservlet" class="downloadxlsform" method="GET" name="downloadxlsform">
<div class="downloadform" name="downloadform">
<div class="sub_title">All traded products</div>
<input id="methodxls" name="method" type="hidden" value="InstrumentList"><input name="profileid" type="hidden" value="1124"><button class="dwnload_xls" name="SUBMIT" onclick="this.form.submit()" style="background-image:url(/sites/bet/images/english/download_xls_eng_white.gif)" type="submit"></button>
</div>
</form>

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    您可以让 selenium 找到按钮并通过submit()提交表单:

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    form = WebDriverWait(driver, 30).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "form.downloadxlsform")))
    form.submit()
    

    另外,如果表单在iframe 内,您需要switch to it first

    driver.switch_to.frame('frame_name')
    

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 2016-12-10
      • 2018-09-30
      • 2020-01-09
      • 2020-05-30
      • 1970-01-01
      相关资源
      最近更新 更多