Java 使用selenium从下拉列表中选择随机值?
我无法从包含以下html代码的下拉列表中选择随机值Java 使用selenium从下拉列表中选择随机值?,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,我无法从包含以下html代码的下拉列表中选择随机值 <div class='ui-dropdown-items-wrapper'> <ul class='ui-dropdown-items ui-dropdown-list' role='listbox'> <cdk-virtual-scroll-viewport class='cdk-virtual-scroll-viewport'> <div class='cdk-
<div class='ui-dropdown-items-wrapper'>
<ul class='ui-dropdown-items ui-dropdown-list' role='listbox'>
<cdk-virtual-scroll-viewport class='cdk-virtual-scroll-viewport'>
<div class='cdk-virtual-scroll-content-wrapper'>
<p-dropdownitem class='ng-tns-c14'>
<li role='option' class='ui-dropdown-items ui' area-label="apple">
<span class='ng-star-inserted'>apple</span>
</li>
</p-dropdownitem>
<p-dropdownitem class='ng-tns-c14'>
<li role='option' class='ui-dropdown-items ui' area-label="Banana">
<span class='ng-star-inserted'>Banana</span>
</li>
</p-dropdownitem>
<p-dropdownitem class='ng-tns-c14'>
<li role='option' class='ui-dropdown-items ui' area-label="Mango">
<span class='ng-star-inserted'>Mango</span>
</li>
</p-dropdownitem>
</div>
<div class="cdk-virtual-scroll-spacer"></div>
</cdk-virtual-scroll-viewport>
</ul>
</div>
我试过下面的代码,但不起作用。有人能帮我从上面的HTML代码中选择随机值吗
List<WebElement> options = driver.findElements(By.xpath("//*[@role='option']"));
Random rand = new Random();
int list= rand.nextInt(options.size());
options.get(list).click();
你能试试这个XPath吗
List<WebElement> options = driver.findElements(By.xpath("//p-dropdownitem/li[@role='option']/span"));
int size = options.size();
options.get(new Random().nextInt(size)).click();
你能试试这个XPath吗
List<WebElement> options = driver.findElements(By.xpath("//p-dropdownitem/li[@role='option']/span"));
int size = options.size();
options.get(new Random().nextInt(size)).click();
我已经修改了XPath,它工作正常,但在执行下拉选择之前,我需要单击下拉列表,然后只加载li/span列表 将XPath修改为: 最终代码:
我已经修改了XPath,它工作正常,但在执行下拉选择之前,我需要单击下拉列表,然后只加载li/span列表 将XPath修改为: 最终代码:
你能给我们看一张html的图片吗?你提供的HTML看起来像纯文本,没有可选择的。你能给我们展示一下HTML的图片吗?您提供的HTML看起来像纯文本,没有可选择的内容。
List<WebElement> options = driver.findElements(By.xpath("//label[@for='year']/../div//li[not(contains(.,'--select--'))]"));
Random rand = new Random();
int list= rand.nextInt(options.size());
options.get(list).click();