试图找到一个点击“MyCompany”按钮的元素。但是我在调用 driver.FindElement(By.XPath("//button[@title='MyCompany']").Click()
时得到 NoSuchElementExist ?我做错了什么?
答案 0 :(得分:0)
您可以尝试两件事:
首先,使用完整的 xpath(在 chrome 开发工具中,右键单击元素,复制 > 完整的 Xpath)。
其次,因为是angular,有时候元素喜欢在视口中,或者页面需要先加载一路。这可以通过使用“IJavaScriptExecutor”来完成。
//use full xpath here instead
var xPathButton = @"//button[@title='MyCompany']";
using (var driver = new ChromeDriver())
{
driver.Navigate().GoToUrl("https://website.com);
//scrolls to bottom to ensure page load
((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight - 1)");
Task.Delay(2000).Wait();
var companyButton = driver.FindElementByXPath(xPathButton);
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click();", companyButton);
}