慕標(biāo)琳琳
2023-05-17 16:08:33
元素在標(biāo)簽內(nèi),但嘗試了很多方法都無(wú)法點(diǎn)擊它。wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@value='Login to Register']"))).click();和WebElement element = driver.findElement(By.xpath("//input[@value='Login to Register']"));JavascriptExecutor jsEx= (JavascriptExecutor)driver;jsEx.executeScript("arguments[0].click();", element);這是 html:<div id="requestRegistrationWidget"> <a id="requestLocationLogin" href="/user/login?destination=%2Fsearch%2Flocations%2Fwidget%3Fparam1%3D006046-0619_1565278200_11000000%26param2%3D3" class="use-ajax login-popup-form" data-dialog-type="modal"> <input class="btn btn-primary" style="width: 100% !important;" type="button" value="Login to Register"></input> </a> <!-- registerSession == 3 and registerAnyActiveSession == 1 case (2) --> </div>
3 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
你能試試下面的代碼嗎?
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.id("requestLocationLogin"))).click();

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
我想你在 chrome 上遇到了這個(gè)問(wèn)題。試試這個(gè),它對(duì)我有用。
element.sendKeys(Keys.RETURN);
它只是點(diǎn)擊元素上的“輸入”按鈕。

達(dá)令說(shuō)
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
要click()
在帶有文本的元素上登錄以注冊(cè),因?yàn)樵撛厥侵С諥JAX的元素,您必須為此引入WebDriverWaitelementToBeClickable()
,并且您可以使用以下任一定位器策略:
cssSelector
:new?WebDriverWait(driver,?20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a.use-ajax.login-popup-form#requestLocationLogin>input.btn.btn-primary[value='Login?to?Register']"))).click();
xpath
:new?WebDriverWait(driver,?20).until(ExpectedConditions.elementToBeClickable(By.xpath("http://a[@class='use-ajax?login-popup-form'?and?@id='requestLocationLogin']/input[@class='btn?btn-primary'?and?@value='Login?to?Register']"))).click();
添加回答
舉報(bào)
0/150
提交
取消