Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取div标记的值_Java_Selenium_Selenium Webdriver - Fatal编程技术网

Java 如何获取div标记的值

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

我怎样才能从中获取我的麻烦并单击

我已经尝试了下面提到的代码,但它没有得到我的工作

试用代码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-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();