如何在使用ajax的网站上使用selenium?

flseospp  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(353)

我曾尝试使用selenium自动化一个网站,并从下拉菜单中选择一个选项,但我面临的问题是,在选择该选项后,ajax不会执行。这只发生在使用selenium时,我已经手动尝试过了,效果很好。webdriver wait不适合我。下面是执行此操作的代码:

WebElement element =(driver.findElement(By.id("equity_optionchain_select")));
    Select elementSelect=new Select(element);
    elementSelect.selectByVisibleText("BANKNIFTY");
g6baxovj

g6baxovj1#

就banknifty而言,这些元素可能是基于javascript、reactjs、jquery、ajax、vue.js、ember.js、gwt等的动态元素。因此,理想情况下,您需要为 elementToBeClickable() 您可以使用以下任一定位器策略:
使用id和 selectByVisibleText() :

new Select(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("equity_optionchain_select")))).selectByVisibleText("BANKNIFTY");

使用cssselector和 selectByVisibleText() :

new Select(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("#equity_optionchain_select")))).selectByVisibleText("BANKNIFTY");

使用xpath和 selectByVisibleText() :

new Select(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='equity_optionchain_select']")))).selectByValue("BANKNIFTY");

相关问题