繁体   English   中英

无法在 C# 中找到带有 Selenium 的“按钮”

[英]Unable to find “Button” with Selenium in C#

我在使用 Selenium 代码时遇到了一个问题,无法找到一个只有"Value""type"的按钮,经过检查,它看起来像这样:

<input type="sumbit" value="login" />

检查图像

我试了两次,但两条线都不适合我。

线路:

第一个解决方案:

driver.FindElement(By.XPath("//button[contains(text(),'Login')]")).Click();

第二种解决方案:

driver.FindElement(By.ClassName("submit")).Click();

带有错误消息的图像(第二行错误)

任何人都可以帮助我,或者至少指出我缺少什么,因为为这种常见的事情找到解决方案变得非常令人沮丧,我在教程页面上练习过,按钮从来没有问题。

请。 (对不起我的英语不好)

Ps:我查了“类似的问题,我还没有找到解决方案。

Pss:伙计们,还有另一种我还没有尝试过,但我有 3 行不同的代码,你认为其中一种会起作用吗:

有下拉列表,我想选择列表中的最后一件事......

driver.FindElement(By.XPath("///*[contains(., '处理数据>>')]"));

driver.FindElement(By.Id("pdatasub")).Click();

driver.FindElement(By.XPath("//div[text()='Process Data >>']")).Click();

检查下拉列表

打开下拉列表中最后一个“按钮”的代码:

driver.FindElement(By.XPath("//div[text()='Final Values']")).Click();

在此处输入链接描述

谢谢你们的帮助!

您的定位器有误。
你可以使用这个:

driver.FindElement(By.XPath("//button[@type='submit']")).Click();

要么

driver.FindElement(By.XPath("//button[@value='login']")).Click();

要么

driver.FindElement(By.XPath("//button[@value='login' and @type='submit']")).Click();

CSS Selector 也可以类似地使用。
还有几个可能的问题:

  1. 您应该在访问该元素之前添加一个等待。 否则,您正在尝试在页面尚未加载时查找元素。 预期条件是执行此操作的首选方式。
  2. 元素可以在 iframe 内。 如果是这样,您必须切换到该 iframe 才能访问其中的元素。

您使用了错误的定位器:

试试这个:

driver.FindElement(By.XPath("//input[@type='submit' and @value='Login']")).Click();

要么

使用ExplicitWaits

new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//input[@type='submit' and @value='Login']"))).Click();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM