【问题标题】:How do I click "Copy" using Selenium WebDriver?如何使用 Selenium WebDriver 单击“复制”?
【发布时间】:2020-08-22 12:29:19
【问题描述】:

如何点击此 URL https://www.w3resource.com/java-exercises/basic/java-basic-exercise-249.php 中的“复制”按钮

我需要点击的标签被标记为“复制”

我尝试了多种“查找元素”方法,但是我不断收到诸如没有此类元素之类的错误。

button = driver.find_elements_by_class_name('toolbar-item') #not working
driver.findElementByClassName("a.cc_btn.cc_btn_accept_all") #not working
driver.find_element_by_css_selector("toolbar").click() #not working
driver.findElementByClassName("toolbar-item").click() #not working

在这种情况下,我如何选择“复制”参考以及使用什么方法单击“复制”? 此外,当单击“复制”按钮时,如何将内容粘贴到文本文件中。

这些是我得到的其他错误。

错误:

Traceback (most recent call last):
  File "untitled.py", line 27, in <module>
    driver.find_element_by_css_selector("toolbar-item").click()
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 598, in find_element_by_css_selector
    return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
    'value': value})['value']
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"toolbar-item"}
  (Session info: chrome=81.0.4044.138)

还有:

NoSuchElementException: Message: Unable to locate element:

【问题讨论】:

    标签: python-3.x selenium web-scraping css-selectors webdriver


    【解决方案1】:

    点击Copy按钮诱导WebDriverWait()并等待presence_of_element_located()并跟随xpath。你需要滚动元素来点击。

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Chrome()
    driver.get("https://www.w3resource.com/java-exercises/basic/java-basic-exercise-249.php")
    copybtn=WebDriverWait(driver,15).until(EC.presence_of_element_located((By.XPATH,"//a[text()='Copy']")))
    copybtn.location_once_scrolled_into_view
    copybtn.click()
    

    您也可以使用以下 css 选择器。

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    driver = webdriver.Chrome()
    driver.get("https://www.w3resource.com/java-exercises/basic/java-basic-exercise-249.php")
    copybtn=WebDriverWait(driver,5).until(EC.presence_of_element_located((By.CSS_SELECTOR,".toolbar-item>a")))
    driver.execute_script("arguments[0].scrollIntoView();", copybtn)
    copybtn.click()
    

    【讨论】:

    • 谢谢。您能否发布 Java 等效项以单击“复制”按钮? :)
    猜你喜欢
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 2015-12-23
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多