Python 如何将项目列表发送到selenium中的表单,并为列表中的每个项目按return键?

Python 如何将项目列表发送到selenium中的表单,并为列表中的每个项目按return键?,python,selenium,Python,Selenium,如果标题不是100%清楚,请道歉。基本上,我想做的是将列表中的每个项目发送到相同的表单,但对于每个项目,点击“返回”,然后继续下一个项目,再次发送\ U键,再次点击“返回”,依此类推 这就是我目前所拥有的 driver.find_element_by_name("website").send_keys(urls, Keys.RETURN) 这将发送URL列表中的所有项目,然后单击return,而我要做的是为该列表中的每个元素单击return 谢谢您可以使用for loop: for url i

如果标题不是100%清楚,请道歉。基本上,我想做的是将列表中的每个项目发送到相同的表单,但对于每个项目,点击“返回”,然后继续下一个项目,再次发送\ U键,再次点击“返回”,依此类推

这就是我目前所拥有的

driver.find_element_by_name("website").send_keys(urls, Keys.RETURN)
这将发送URL列表中的所有项目,然后单击return,而我要做的是为该列表中的每个元素单击return

谢谢

您可以使用for loop:

for url in urls:
    driver.find_element_by_name("website").send_keys(url, Keys.RETURN)
使用WebDriverWait等待元素可单击:

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

# ..
wait = WebDriverWait(driver, 10)

for url in urls:
    wait.until(EC.element_to_be_clickable((By.NAME, "website"))).send_keys(url, Keys.RETURN)
您还可以使用Selenium Keys实现使用的\ue007-输入密钥代码,但这是针对一个非常具体的问题。通常WebDriverWait是更好的解决方案,因为网站在每次登录时都会做一些事情:

urls = [
    "https://aa.com\ue007",
    "https://bb.com\ue007",
    "https://cc.com\ue007"
]
driver.find_element_by_css_selector("website").send_keys(urls)

您需要循环浏览列表以完成此操作:

for url in urls:

     driver.find_element_by_name("website").send_keys(url, Keys.RETURN)
我怀疑这可能会输入一个url,点击return,然后发送下一个url来替换它。如果希望将整个url列表输入到字段中,则可能需要构建一个字符串,在每个url之间放置一行返回值,然后发送一个对象,如下所示:

urlList = ""

for url in urls:
     urlist = urlist + url + "\r\n"

driver.find_element_by_name("website").send_keys(urlList)

通过使用此选项,我在一次运行“selenium.common.exceptions.elementnotinteractiableexception:Message:element notinteractitable”后出现此错误。网站是否实施了这种保护?如果是,是否有在循环中添加延迟的选项?再次感谢你!WebDriverWait应该可以解决这个问题,经常检查答案更新,这正是我想要的: