我找不到使用Python和Selenium点击按钮的方法

时间:2018-04-23 06:30:46

标签: python selenium xpath css-selectors webdriver

我有一个问题,我碰巧有一个带有这些标签的按钮,我正试图点击Selenium,但我找不到点击它的方法。我试图把它作为参考XPath,链接文本和CSS选择器,但我没有实现我的目标。这是按钮的代码:

<a class="btn btn-flat pull-right" data-action="export_report"> <i class = "icon-export"> </ i> Export </a>

XPath以东:

// * [@ id = "reports"] / div [1] / div [2] / a

这个选择器:

#reports> div.span12> div.headline-action-block.pull-right> a

这是Python中的按钮和我的代码:(

按钮: button

我的代码: my code

我遇到此错误

File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 955, in find_element
    'value': value})['value']

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

openrate = driver.find_element_by_css_selector("a.btn")
openrate.click()

假设这是唯一的按钮,或页面上的第一个按钮。否则("a.btn.btn-flat.pull-right")

答案 1 :(得分:0)

根据您分享的HTML,您似乎已在上一步骤中调用了click(),因此在此步骤中,{>> 1}}按钮上的文字为导出诱导 WebDriverwait 以使元素可点击,您可以使用以下任一定位策略

  • PARTIAL_LINK_TEXT

    click()
  • CSS_SELECTOR

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    # lines of code     
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "Export"))).click()
    
  • XPATH

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    # lines of code     
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.btn.btn-flat.pull-right[data-action='export_report']>i.icon-export"))).click()