星辰幸福 2021-02-22 12:38 采纳率: 80%
浏览 310
已采纳

selenium定位无法定位网页元素

selenium打开网址之后。定位元素。

网页里这样的表格。我用了driver.find_elements_by_css_selector('[style="text-align: right;"]')[0].click()

去点击。

出错代码。

 Message: element click intercepted: Element <input type="text" class="unit sc-common-input" style="text-align: right;"> is not clickable at point (833, 869). Other element would receive the click: <div class="footer-buttons">...</div>

消息:元素单击被拦截

这个问题已经解决了。使用

div=driver.find_elements_by_css_selector('[style="text-align: right;"]')[1]
js1 ="arguments[0].scrollIntoView();" 
driver.execute_script(js1, div) 

可以定位输入。

但是出现了另外的问题,

 

.

这个页面可以定位到。

driver.find_elements_by_css_selector('[class="html-area-content"]')[0].click()

可以定位到。

但是无法传值进去

出现错误,元素不可交互。

是什么情况。

这个是html代码的输入框。

无法传值

  • 写回答

5条回答 默认 最新

  • 歇歇 2021-02-22 12:56
    关注

    您需要在该元素上使用焦点或滚动。您可能还必须使用显式等待。

     

    WebElement firstbutton= driver.findElement(By.xpath("Your Element"));
    Actions actions = new Actions(driver);
    actions.moveToElement(element);
    actions.perform();
    

     

    或者

    该元素不可点击,因为其上方有一个微调器/叠加层:

     

    By loadingImage = By.id("loading image ID");
    WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
    wait.until(ExpectedConditions.invisibilityOfElementLocated(loadingImage));
    

     

    或者

     

    Point p= element.getLocation();
    Actions actions = new Actions(driver);
    actions.moveToElement(element).movebyoffset(p.x,p.y).click().perform();
    

     

    或者

    如果仍然无法使用,请使用 JavascriptExecutor

     

    JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript("arguments[0].click();", firstbutton);
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料