Python 如何将项目列表发送到selenium中的表单,并为列表中的每个项目按return键?
如果标题不是100%清楚,请道歉。基本上,我想做的是将列表中的每个项目发送到相同的表单,但对于每个项目,点击“返回”,然后继续下一个项目,再次发送\ U键,再次点击“返回”,依此类推 这就是我目前所拥有的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
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应该可以解决这个问题,经常检查答案更新,这正是我想要的: