【问题标题】:Click a button using Selenium and Python使用 Selenium 和 Python 单击按钮
【发布时间】:2018-08-22 17:43:08
【问题描述】:

我有以下代码:

<a class="sectionname" href="#" onclick="expandAll();return false;">Expand all</a> 

当我点击全部展开时,整个页面都会加载。如何使用 Python 的 WebDriver 来做到这一点?

【问题讨论】:

  • 发布你的 Python 脚本。

标签: python selenium onclick


【解决方案1】:

根据HTML,您可以使用find_element_by_link_text 并调用click() 方法,如下所示:

driver.find_element_by_link_text("Expand all").click()

您可以使用find_element_by_xpath 获得更详细的信息,如下所示:

driver.find_element_by_xpath("//a[@class='sectionname' and contains(.,'Expand all')]").click()

更新

由于您仍然看不到扩展,您可以尝试 Javascript 方式如下:

myElement = driver.find_element_by_xpath("//a[@class='sectionname' and contains(.,'Expand all')]")
driver.execute_script("arguments[0].click();", myElement)

【讨论】:

  • 代码运行没有错误,但页面上仍然没有任何动作。
  • 我确信我们的代码行是完美的,我怀疑是 "expandAll();return false;"onclick 事件,这对我没有任何意义。你能做到手动吗?页面需要多长时间才能更改?
  • 是的,我可以手动完成。而且只有几毫秒。由于页面已经加载,但所有数据都已折叠。
  • 是的,更新后的答案有效。您能解释一下您的解决方案吗?
  • 最初我们尝试点击WebElementlink_text,然后点击xpath,但没有成功。所以最后我们得到了JavascriptExecutor 的帮助,它直接与 WebElement 交互,我们成功了。如果您还有任何疑问,请告诉我。
猜你喜欢
  • 2021-01-31
  • 2020-08-06
  • 2017-04-22
  • 2016-05-29
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多