我有一个元素,其中selenium选择为禁用。但是,启用了。 因此我使用javascript点击它。 以下是我使用的代码段:
IWebElement button = driver.FindElement(By.XPath(ButtonXpath));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click()", button);
当我执行此代码时,没有任何反应。它跨过这些行,并且按钮(实际上在这种情况下是锚)没有被点击。 我不能使用id,因为锚没有。
如何强制执行点击?
谢谢, 拉胡
答案 0 :(得分:1)
这很可能是因为错误的选择器或元素加载问题。在执行脚本之前,您需要确保正确找到该元素。检查选择器并在需要时使用一些明确的等待。
//This test works with or without the explicit wait
[Test]
public void ExecutorTest()
{
_webDriver = new ChromeDriver();
_webDriver.Navigate().GoToUrl("https://github.com/");
_webDriver.Manage().Window.Maximize();
By xpathBy = By.XPath("//a[@href='/join']");
IWebElement element =
new WebDriverWait(_webDriver, TimeSpan.FromSeconds(10))
.Until(ExpectedConditions.ElementExists(xpathBy));
((IJavaScriptExecutor)_webDriver).ExecuteScript("arguments[0].click();", element);
_webDriver.Quit();
}