【问题标题】:c# selenium element found but not clickingc# selenium 元素找到但没有点击
【发布时间】:2021-12-31 04:20:26
【问题描述】:

我正在构建轮盘赌机器人,我通过 xpath 查找元素,我可以获得它的类属性等,但我无法点击它。它总是可点击的(机器人找到 iframe,然后找到元素并点击它的工作,但 iframe 中的这个网站游戏屏幕>iframe bot 可以找到按钮但不点击)

            firefox.SwitchTo().Window(firefox.WindowHandles.Last());
            var DBViFrame = firefox.FindElement(By.TagName("iframe"));
            firefox.SwitchTo().Frame(DBViFrame);
            DBViFrame = firefox.FindElement(By.TagName("iframe"));
            firefox.SwitchTo().Frame(DBViFrame);
            var dataEntryButton = firefox.FindElement(By.XPath("//*[name()=\"svg\"]//*[name()=\"g\"]//*[name()=\"rect\"][" + num + "]"));
            
            
         
            dataEntryButton.Click();

【问题讨论】:

  • XPATH 是否真的找到了该元素?尝试检查 .size() 方法是否不返回 0 dataEntryButton.size() != 0
  • 为什么这些行重复 var DBViFrame = firefox.FindElement(By.TagName("iframe")); firefox.SwitchTo().Frame(DBViFrame); ?如果它是嵌套 iframe,则应先切换到父 iframe,然后再切换到子 iframe。此外,它们的定位器应该不同。
  • 两个 iframe 是嵌套的,你能帮我切换一下我有点新手吗

标签: c# selenium selenium-webdriver geckodriver


【解决方案1】:

Firefox 是您的 WebDriver 吗?如果是这样,不妨试试execute_script 看看是否可行?

firefox.execute_script("arguments[0].click();", dataEntryButton)

【讨论】:

  • 机器人无法定位元素
  • 显然您需要将dataEntryButton 传递给它...听起来您的问题在于获取按钮
  • 我现在收到此错误,'TypeError: arguments[0].click is not a function'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-17
  • 1970-01-01
  • 2019-05-23
相关资源
最近更新 更多