我正在使用Selenium WebDriver,并编写了一个小的代码来查找和元素(即按钮)并单击它。这是按钮的HTML代码:
<input type="submit" name="j_id0:j_id2:j_id3:j_id4:j_id7" value="New Master Health Program" onclick="AddLink()" class="btn">
这是测试用例的C#代码:
IWebElement newMasterHealthProgramsLink = driver.FindElement(By.Name("j_id0:j_id2:j_id3:j_id4:j_id7"));
newMasterHealthProgramsLink.Click();
我也尝试使用XPath:
IWebElement newMasterHealthProgramsLink = driver.FindElement(By.XPath("//input[@id='j_id0:j_id2:j_id3:j_id4:j_id5']"));
newMasterHealthProgramsLink.Click();
我找到了一个解决方案,说您一定没有实现“等待”。页面不等待完全加载并尝试查找元素。因此,我添加了等待命令,但没有发生任何有用的事情。仍然出现相同的错误:
TestAutomation.Driver.Login:
OpenQA.Selenium.NoSuchElementException : The element could not be found
由于您的元素位于IFrame中,因此您需要使用WebDriver API“切换”到该IFrame。
默认情况下,Selenium将使用“顶部”框架,因此任何“查找元素”查询都将定向到最顶部的框架,而忽略任何子IFrame。
为了解决这个问题,“切换”到当前的IFrame会指示Selenium将所有请求推送到该Iframe。
driver.SwitchTo().Frame()
请注意,您将需要一种访问框架的方法,即通过其ID,索引(最上面的框架为0,向下一个框架为1,依此类推)或名称。
另一个注意事项是,任何其他请求都将直接发送到该IFrame,而忽略其他任何请求,包括顶部请求…因此,如果您需要访问顶部框架,则需要切换回:
driver.Switch().DefaultContent()
。
我尝试了xpath和检查,如下所示
我无法使用XPATH和CSS找到元素
我试图自动登录到网站https://opensource-demo.orangehrmlive.com/web/index.php/auth/login使用硒通过它给出了一个错误 selenium.common.exceptions.NoSuchElementException: 消息: no suchElement: 无法找到元素: {“method”:“css selector”,“selec
我尝试使用Python selenium(新的)做一些自动化。不幸的是,检查特定网页的元素不仅仅是困难的。没有id可以使用,我尝试xpath。我想选择一个下拉列表,我检查这个元素,然后复制xpath,它是//*[@id="frmMain:purchase_criteria_tab"]/div[13]/div[1]/div/按钮 我的代码是: 我不明白这个元素有什么想法吗?提前谢谢你。
我无法使用XPath标识元素。我尝试了不同类型的xpath,但无法识别它。 我想标识下面的图片中显示的元素“Bills”。我没有ID,所以我使用XPath。我使用了下面的XPath。 xpath=//android.app.actionbar$tab/textview[@text='bills']和xpath=//android.app.actionbar$tab1/textview[@text=