我必须点击页面上的某个按钮。但是,当我检索所有具有特定类名的元素时。当我尝试执行每个元素或单击时,所有检索到的元素都会抛出一个过时的引用异常。我不能双击任何一个。它找到了正确的元素,但抛出了所有元素的例外。注释掉的代码就是我试图选择并点击相应按钮的地方。我附上了表格的照片。请注意,每次单击或执行按钮时,页面都会发生更改。选择上传BOM按钮是您需要特别注意的。网站
// Switch to correct frame
IWebElement editorFrame = driver.FindElement(By.ClassName("frame-banner"));
driver.SwitchTo().Frame(editorFrame);
var action = new OpenQA.Selenium.Interactions.Actions(driver);
// Select Project File
IList<IWebElement> projectFileButtonList= driver.FindElements(By.ClassName("data-cell"));
foreach (var button in projectFileButtonList)
{
if (button.Text == "BOM_scrub")
{
// Found Project File now select it
action.DoubleClick(button);
action.Perform();
break;
}
}
// Select Upload BOM Button
IList<IWebElement> uploadBomBtn = driver.FindElements(By.ClassName("se-custom-main-button"));
foreach (var element in uploadBomBtn )
{
try
{
action.DoubleClick(element);
action.Perform();
}
catch
{
}
/*
if (element.Text == "Upload BOM")
{
int i = 0;
while (i == 0)
{
try
{
action.DoubleClick(element);
action.Perform();
break;
}
catch
{
}
}
}
*/
}
不要将driver.findElement(-s)
与动态组件一起使用。
当您试图对已经从DOM中分离出来的元素执行操作时,会发生StaleElementRe签到异常。
您必须使用显式等待机制(WebDriverWaitExpectedConditions
)在满足指定条件时自动刷新元素的状态,并返回其有效表示形式。
问题内容: 我试图单击此页面上的元素: 在这一点上,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时: 全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。 我认为这是由于位于错误的iframe中,而我找到了所有ifram
我使用Firefox驱动程序编写了许多Selenium测试,效果很好。但由于某些原因,我现在在尝试实例化Firefox驱动程序时遇到了一个异常。有人知道Firefox的任何更新可能会影响这一点吗? 下面是两行代码。异常发生在第2行:- 以下是我得到的例外情况:- “WebDriver.dll中出现“OpenQA.Selenium.WebDriverException”类型的异常,但未在用户代码中处
我正在处理以下堆栈的解决方案: ASP. NET Core .NET核心 MongoDB ...使用此驱动程序与数据库通信:https://www.nuget.org/packages/MongoDB.Driver.Core/ ...版本2.4.1 我试图像这样实例化MongoClient: 但最后一句话错误地说: “系统”类型的异常。MongoDB中出现MissingMethodExceptio
问题内容: 在硒测试中出现以下错误 我所做的是 环境: Firefox v47.0 Webdriver 3.0.0-beta2 问题答案: 这是完全可以预期的。没有GeckoDriver(木偶)的发行版支持该类。这是Mozilla团队开发Marionette的首要任务之一。
问题内容: 我正在使用加载。 我使用MySQL作为数据源,并且已在ODBC数据源管理器(在Windows 8中)中添加了数据源名称。 这是代码: 输出: 问题答案: 您正在使用Java 8吗?该类不再存在(更多信息)。如果需要使用Java 7,可以安装它。
新的Google chrome更新会在浏览器中出现这样的信息:“您正在使用不受支持的命令行标志:--Ignore-Certifice-Errors。稳定性和安全性将受到影响。” 根据我在selenium bug报告中读到的内容,临时解决方案是启动webdriver