Java 如何获取div标记的值
我怎样才能从中获取我的麻烦并单击 我已经尝试了下面提到的代码,但它没有得到我的工作 试用代码1) 试用代码(2) 试用代码(3) 我的Java 如何获取div标记的值,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我怎样才能从中获取我的麻烦并单击 我已经尝试了下面提到的代码,但它没有得到我的工作 试用代码1) 试用代码(2) 试用代码(3) 我的html代码如下: <div class="dx-scrollview-content" onclick="void(0)"> <div id="50d24777-593c-7626-d924-2a3db0e72e89" class="dx-item dx-list-item dx-list-item-selected dx-state-fo
html
代码如下:
<div class="dx-scrollview-content" onclick="void(0)">
<div id="50d24777-593c-7626-d924-2a3db0e72e89" class="dx-item dx-list-item dx-list-item-selected dx-state-focused" role="option" aria-selected="true" style="">
<div class="dx-item-content dx-list-item-content">MY_TROUBLE_ONE</div>
</div>
<div class="dx-item dx-list-item" role="option" aria-selected="false">
<div class="dx-item-content dx-list-item-content">MY_TROUBLE_TWO</div>
</div>
</div>
我的麻烦
我的麻烦两个
尝试下面的代码以获取MY\u TROUBLE\u TWO的值
注意:不要使用绝对xpath
,而是使用相对xpath
解释:在转到元素之前放置一些等待,因为我使用了显式等待
方法。等待后,使用带有div
标记的text
方法查找元素以获取元素
WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//div[contains(text(), 'MY_TROUBLE_TWO')]")))).click();
什么不起作用?你收到错误信息了吗?它超时了吗?是否找不到元素?不要使用
Thread.sleep()
。相反,使用WebDriverWait
并等待元素可单击,等等@JeffC,我使用WebDriverWait如下:WebDriverWait wait wait=new WebDriverWait(driver,10);wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(“//div[contains(text(),'SOME_text')]”))。单击()
@Sergey是的,完全一样。@Jeffc,谢谢你的回复,我已经用显式等待
方法更新了我的答案。我对答案做了一个小编辑wait.until()
返回等待的元素(如果成功),因此您可以只。单击()
返回。它使您不必再次刮页面来单击元素。
Select select = new Select(driver.findElement(By.xpath(".//xpath_to_item")));
select.selectByVisibleText("MY_TROUBLE_TWO");
<div class="dx-scrollview-content" onclick="void(0)">
<div id="50d24777-593c-7626-d924-2a3db0e72e89" class="dx-item dx-list-item dx-list-item-selected dx-state-focused" role="option" aria-selected="true" style="">
<div class="dx-item-content dx-list-item-content">MY_TROUBLE_ONE</div>
</div>
<div class="dx-item dx-list-item" role="option" aria-selected="false">
<div class="dx-item-content dx-list-item-content">MY_TROUBLE_TWO</div>
</div>
</div>
WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//div[contains(text(), 'MY_TROUBLE_TWO')]")))).click();