无法找到并单击按钮 By.XPath("//button[@title='MyCompany']").Click()

时间:2021-03-15 13:34:54

标签: c# selenium

试图找到一个点击“MyCompany”按钮的元素。但是我在调​​用 driver.FindElement(By.XPath("//button[@title='MyCompany']").Click() 时得到 NoSuchElementExist ?我做错了什么?

enter image description here

1 个答案:

答案 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);
         }