我必须点击页面上的某个按钮。但是,当我检索具有特定类名的所有元素时。当我尝试执行每个元素或单击时,所有检索到的元素都会抛出过时的引用异常。我无法双击其中任何一个。它找到了正确的元素,但抛出了所有这些元素的异常。注释掉的代码是我实际尝试选择并单击相应按钮的地方。我附上了表格的图片。请注意,每次单击或执行按钮时都会更改页面。选择上载BOM按钮是您需要特别注意的。 Website
// 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
{
}
}
}
*/
}
答案 0 :(得分:0)
请勿将These tags are in checkpoints/1504359209.469093:
audio -
histograms -
images -
scalars -
tensor -
与动态组件一起使用。
driver.findElement(-s)
发生,因为您正在尝试对已经从DOM分离的元素执行操作。
您必须使用显式等待机制(StaleElementReferenceException
+ WebDriverWait
的组合),它会自动刷新元素的状态,并在满足指定条件时返回其有效表示。