[英]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 也可以类似地使用。
还有几个可能的问题:
您使用了错误的定位器:
试试这个:
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.