【问题标题】:python selenium how to execute_script only when function is availablepython selenium如何仅在函数可用时执行_script
【发布时间】:2022-01-18 20:18:48
【问题描述】:

我想做 driver.execute_script('getDate();')

这个函数getDate()是在网页的javascript中定义的。如何确保函数定义首先加载?否则我会收到一条错误消息javascript error: no such function...

更新:我的用例是有一个 datepicker 元素在某个时候调用此函数。我想用这个函数直接获取/设置日期,而不是编写代码来查找日期选择器元素,点击日、月、年等,我觉得会很复杂

【问题讨论】:

  • 使用元素的相关 HTML 更新问题。
  • 只是好奇这些信息对解决方案有何帮助?如果它有帮助,基本上有一个 datepicker 元素会在某个时候调用这个函数。我想用这个函数直接获取/设置日期,而不是编写代码来查找日期选择器元素,点击日、月、年等,我觉得这很复杂

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

您可以尝试使用等待直到:

// waituntil
while (typeof getDate !== "function") {
  task(i); // timeout
}

function task(i) {
  setTimeout(function() {
      // Add tasks to do
  }, 2000 * i);
}

// now call getDate
getDate();

【讨论】:

  • 谢谢,但我认为如果该函数尚不存在,这将跳过调用该函数?我想等到函数存在后再调用它。
  • 我明白了,这对我来说并不清楚。我稍后会调整那个答案
  • 好的,我已经更新了答案
猜你喜欢
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-08
  • 2021-11-09
  • 2019-11-30
  • 2021-10-04
相关资源
最近更新 更多