【问题标题】:Element deletion causes wrong click in Selenium元素删除导致 Selenium 中的错误点击
【发布时间】:2021-09-03 21:26:08
【问题描述】:

当 selenium 尝试单击一个按钮时,网站删除了上面的一个 div,并且 selenium 单击了我想要单击的元素下的元素。 我尝试点击 XPath、CSS 选择器和类名,但它们都不起作用。另外,我尝试过点击动作链,但没有成功。

在点击之前,我可以确认选择的元素是正确的元素。

var element=driver.FindElements(By.ClassName("warning"))[0];
Debug.WriteLine(element.Text);

这会将正确的元素写入输出。

-这是代码 By.ClassName:

driver.FindElements(By.ClassName("warning"))[0].Click();

右侧元素下的元素没有“警告”类,但它仍在点击该元素。

页面基本是这样的:

<div id="maindiv">
<div class="the div that will delete"></div>
<button class="warning"></button>
<button class="second"></button>
<button class="third"></button>
<button class="fourth"></button>
</div>

here is how its looks

基本上,我试图点击“警告”按钮,但“第三个”按钮接收点击。 我该怎么办?

【问题讨论】:

    标签: c# html selenium browser-automation


    【解决方案1】:

    我解决了这个问题。首先,我在单击之前删除了 div,然后单击了按钮。 代码如下:

    var element = driver.FindElement(By.XPath("//[@id=\"app\"]/div[7]/main/div/div/div[2]/div/div/div[1]/div[1]"));
    ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].parentNode.removeChild(arguments[0]);",element );
    
    var button=driver.FindElement(By.XPath("//*[@id=\"app\"]/div[7]/main/div/div/div[2]/div/div/div[1]/span[1]/span/button"));
    ((IJavaScriptExecutor) driver).ExecuteScript("arguments[0].click();",button);
    
         `
    

    【讨论】:

      猜你喜欢
      • 2016-08-12
      • 1970-01-01
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多