我正在使用webdriverjs,我想获得webelement的父ID。有多个类叫做row但每个都有不同的id。挑战是在发送消息时生成ID。所以我可以按类抓取innerHtml,然后尝试获取Id。 我有以下的HTML,
<div class="row" id="4003">
<div class="client-chat">
<p class="client-chat-text">If you have any questions, don’t hesitate to message me. I’m here to help with whatever you need!<span class="chat-time">Feb 01 2017 11:30:57</span></p>
</div>
</div>
<div id="4361" class="row">
<div class="coach-chat">
<p class="coach-chat-text">
hi
</p>
</div>
带有id(4361)的第二个div是我需要为我的测试抓取的生成的一个。但是,我可以获取 coach-chat-text 。我如何获得selenium中的父元素。我尝试过以下代码,但我不知道如何获取父ID。
it('send a text message now',function(done){
driver.findElement(webdriver.By.css("#messageField")).sendKeys('Hi');
driver.sleep(1000);
driver.findElement(webdriver.By.xpath(".//*[@id='sendMessage']")).click().then(function(){
driver.findElement(webdriver.By.className("coach-chat-text")).getText().then(function(text){
var message = text.slice(0,2);
//i want to fetch the parent id here.
try {
expect(message).to.equal("www.pluma.co");
done();
} catch (e) {
done(e);
}
});
});
});
});
答案 0 :(得分:1)
如果您使用webdriver.By.xpath
查找带有&#39; coach-chat-text&#39;类的元素,那么您可以使用XPath父选择器 - /parent::node()
- 来查找父元素。
如下所示,尽管您的XPath可能会有所不同:
driver.findElement(webdriver.By.xpath(".//*[contains(@class, 'coach-chat-text')]/parent::node()"));