【问题标题】:How to select radio button with Selenium and Python如何使用 Selenium 和 Python 选择单选按钮
【发布时间】:2015-07-22 21:17:50
【问题描述】:

我正在尝试选择单选按钮“击球手”。有人可以帮忙吗?我尝试了很多不同的东西,但不断收到“消息:元素不可见”。

谢谢!

【问题讨论】:

  • 可能是您的元素在硒窗口之外吗? (可以通过driver.maximize_window() 解决你之前的.get 页面)。另一个原因可能是您试图在加载之前抓取元素,快速解决方法是在尝试查找元素之前添加time.sleep(5)(或任何合适的时间跨度)。
  • @jaapvee 尝试maximize_window() 完全有道理并且可以提供帮助,但我担心添加等待无济于事。 Selenium 找到一个元素,但无法单击它,因为它是不可见的。
  • @alecxe,是的,我认为你是对的。让我们看看 OP 什么时候做出反应:如果 maximize_window 成功了,那么正确答案的 kuddo 就交给你了 :)
  • 感谢你们的回复。最大化窗口不起作用:(我对抛出的错误进行了一些研究。“ElementNotVisibleException”表示“元素存在于 DOM 中,但不可见,因此无法与之交互”。这是 stackoverflow 上的类似内容,但我无法理解它的解决方案:stackoverflow.com/questions/27927964/…

标签: python python-2.7 selenium selenium-webdriver


【解决方案1】:

定位收音机input有多种方法,这里是使用find_element_by_id()的一种:

radio = driver.find_element_by_id("ContentPlaceHolder1_HitterRadioButton")
radio.click()

或者,如果您对这种方法有问题,您可以通过 javascript 模拟点击:

radio = driver.find_element_by_id("ContentPlaceHolder1_HitterRadioButton")
driver.execute_script("arguments[0].click();", radio)

【讨论】:

  • 感谢您的回复。但是,运行它后,我仍然收到相同的“消息:元素不可见”错误:(
  • 但是很奇怪,因为当我检查 radio.is_selected() 时,它能够判断单选按钮已被选中....但是当我尝试在未选中的情况下单击它时,它可以'似乎根本没有罚款单选按钮“消息:元素不可见”
  • 如果可能,您能否提供 URL 以提供解决方案?
  • @Josh 同样,检查是否没有其他元素具有相同的 id 属性值。
  • 该页面需要您拥有该网页的免费帐户。主页是balloonmonster.com,如果您最终注册了一个帐户,我正在查看baseballmonster.com/Daily.aspx
猜你喜欢
  • 2019-05-04
  • 2018-08-04
  • 2017-08-02
  • 2011-10-01
  • 2016-08-10
  • 2021-03-31
  • 2023-01-19
  • 1970-01-01
  • 2014-02-14
相关资源
最近更新 更多