如何使用Selenium和Python在CodeMirror字段中发送字符

如何使用Selenium和Python在CodeMirror字段中发送字符,python,selenium,selenium-webdriver,webdriverwait,codemirror,Python,Selenium,Selenium Webdriver,Webdriverwait,Codemirror,图片: 我试图做的是使脚本写入此对话框,在该对话框中可以写入某些内容,但由于以下错误,我无法始终选择路径: from selenium import webdriver import time, random import threading url = 'https://npm.runkit.com/' def e(): driver = webdriver.Chrome() driver.get(url) time.sleep(10)

图片:

我试图做的是使脚本写入此对话框,在该对话框中可以写入某些内容,但由于以下错误,我无法始终选择路径:

from selenium import webdriver
import time, random
import threading

url = 'https://npm.runkit.com/'

def e():

      driver = webdriver.Chrome()
      driver.get(url)
      time.sleep(10)
      driver.find_element_by_xpath('/html/body/div/div/div/div/div/div/div/div[3]/div/div/div/div[1]/div[1]/div[6]/div[1]/div/div/div/div[5]/div/pre/span/span').send_keys('a')


for i in range(1):
    t = threading.Thread(target=e)
    t.start()

有人能帮我做吗?

看来你走错路了

请查找以下代码:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
这将显示如下所示的对话框:


诀窍是复制XPath而不是完整的XPath。这将消除错误消息

您似乎复制了错误的路径

请查找以下代码:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
这将显示如下所示的对话框:

诀窍是复制XPath而不是完整的XPath。这将消除错误消息,以便在所需字段内发送字符序列,您需要:

  • 使所需帧可用并切换到该帧

  • 使所需元素可单击

  • 您可以使用以下任一选项:

  • 注意:您必须添加以下导入:

    driver.get("https://npm.runkit.com/")
    WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[starts-with(@src, 'https://runkit.com/e/iframe')]")))
    time.sleep(10)
    element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.CodeMirror")))
    ActionChains(driver).move_to_element(element).click().send_keys("a").perform()
    
  • 浏览器快照:


工具书类 您可以在以下内容中找到有关的讨论:

要在所需字段内发送字符序列,您需要:

  • 使所需帧可用并切换到该帧

  • 使所需元素可单击

  • 您可以使用以下任一选项:

  • 注意:您必须添加以下导入:

    driver.get("https://npm.runkit.com/")
    WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[starts-with(@src, 'https://runkit.com/e/iframe')]")))
    time.sleep(10)
    element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.CodeMirror")))
    ActionChains(driver).move_to_element(element).click().send_keys("a").perform()
    
  • 浏览器快照:


工具书类 您可以在以下内容中找到有关的讨论:


这仍然会给出错误(selenium.common.exceptions.NoSuchElementException:Message:没有这样的元素:无法定位元素:)我想通过在对话框中键入this not in我的浏览器来生成脚本。看我的截图。请稍等,它会自动打开浏览器并为您加载页面。加载页面后,它也会给我同样的错误。当你在网站上等待时,对话框会自动出现。我想让脚本识别它并键入错误。使用显式等待仍然会给错误(selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:)我想通过在对话框中键入来生成脚本这不在我的浏览器中。请查看我的屏幕截图。请稍等,它会自动打开浏览器并为您加载页面。加载页面后,我的情况也会出现相同的错误。当您在网站上等待时,对话框会自动显示我想生成sccript识别它并键入错误为奇怪使用显式等待似乎您的代码也在工作。获取此错误是奇怪的似乎您的代码也在工作。获取此错误是奇怪的