尽管 Web 驱动程序能够找到元素,但无法单击该元素。
已应用隐式等待。另外,尝试了显式等待,但是当显式等待获取错误元素未附加到页面时
WebElement sales_order_doc_type_dropdown = driver.findElement(By.xpath("//input[@id='WD67']"));
sales_order_doc_type_dropdown.click();
元素的 HTML 代码
<input id="WD67" ct="CB" lsdata="{1:'26.4ex',5:true,8:'WD68',9:'1'}" lsevents="{Select:[{ResponseData:'delta',ClientAction:'submit'},{}]}" type="text" autocomplete="off" tabindex="0" ti="0" class="urEdf2TxtEnbl lsEdfLeftBrdRadius lsEdf3TxtHlpBtn urBorderBox lsControl--explicitwidth" readonly="" value="" style="vertical-align:top;width:26.4ex;">
最佳答案
所需的元素是动态元素,因此要在该元素上click()
,您必须为elementToBeClickable()
引发WebDriverWait并且您可以使用以下任一 Locator Strategies :
css选择器
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[id^='WD'][ct='CB'][lsevents*='ClientAction']"))).click();
xpath
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[starts-with(@id, 'WD') and @ct='CB'][contains(@lsevents, 'ClientAction')]"))).click();
关于java - 尽管在网页上可用,但无法单击某个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57411228/