【问题标题】:Make python chromedriver script run faster (change send_keys *too slow*)使 python chromedriver 脚本运行得更快(更改 send_keys *太慢*)
【发布时间】:2018-04-13 22:25:59
【问题描述】:

您好,我已经构建了一个程序脚本,该脚本可以进入网站并选择尺寸并自动为我检查项目,它运行良好,但我有 2 个问题

1.我想让这个脚本在脚本运行得非常快之前运行得更快(如此之快以至于它基本上添加到购物车并在项目甚至可以加载到购物车之前进入结帐页面(这导致错误)和所以我在我的代码中添加了脚本 wait = WebDriverWait(driver, 10) 和这个我主要用来等到商品加载到购物车并且所有“添加到购物车”按钮出现 wait.until(EC.presence_of_element_located((By.NAME, 'commit'))) 但我希望这个脚本运行得更快我尝试改变 wait = WebDriverWait(driver, 10) 变成类似的东西 wait = WebDriverWait(driver, 1)wait = WebDriverWait(driver, 100) 但我看不出有什么区别我可以做些什么来使脚本运行得更快吗?(它与 wait= 事情无关我会采取任何我能做到的事情,甚至减少毫秒。

  1. 我目前正在使用 send_keys 选项进行自动填充,这是非常缓慢的。有什么我可以使用的东西可以立即填充所有东西吗? ik 有一些“与此类似的 JAVA 脚本可以做到这一点,但我不知道如何正确的 java 脚本或更重要的是如何组合它们

谁能帮帮我,我只想让我的 selenium python chromedriver 脚本尽可能快地运行。

谢谢。

(对于我的脚本,我使用 select 作为尺寸,只使用 .click() 和几个 if 语句,这取决于他们想要购物车的物品数量和大量 def fweuf

fweuf() (我忘记了那些叫lol))

【问题讨论】:

  • 请出示您的代码

标签: python-3.x selenium webdriver selenium-chromedriver wait


【解决方案1】:

要使用 JS 发送值,您可以这样做:

js= "document.getElementById('YOURELEMENT').value = '" + str(YOURVALUE) + "';"
driver.execute_script(js)

希望这会有所帮助。

【讨论】:

  • 是的,谢谢你,但是......它会立即填写完整的单词,但它仍然按顺序执行......无论如何我可以让它一次填充所有文本框??? @Valter Hudovernik
  • 一次发送多个命令,它应该可以工作。如果你不能让它工作,我会在我到电脑前写一个例子
  • 好的,非常感谢!!我将如何准确地一次发送多个命令? @Valter Hudovernik
  • 在调用execute_scripts之前连接到js字符串例如js+="NEW COMMAND"
  • 成功了!!非常感谢@Valter Hudovernik
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
相关资源
最近更新 更多