Reputation: 45
i'm a newbie of automation testing, now i'm using selenium C#. I have a problem, i want to get text from a element, but the code :
<div class="item">
Text1
<span>textdontwant</span>
</div>
and my statement
driver.FindElement(By.XPath("//*[@id='contactList']/div[1]/div/div[1]/div/div/div/div[2]")).Text;
Get:
Text1textdontwant
I need only parent element text is :
Text1
Anyone have solution? Thanks so much! here HTML:
<div id="contactList" class="web z-data-list" tabindex="30" style="position: relative;">
<div style="overflow: visible; height: 0px; width: 0px;">
<div class="virtualized-scroll testing" style="height: 657px; width: 304px;">
<div aria-label="grid" class="ReactVirtualized__Grid ReactVirtualized__List" role="grid" tabindex="-2" style="box-sizing: border-box; direction: ltr; height: 657px; position: absolute; width: 304px; will-change: auto; overflow: auto;">
<div class="ReactVirtualized__Grid__innerScrollContainer" style="width: auto; height: 2198px; max-width: 304px; max-height: 2198px; overflow: hidden; position: relative;">
<div style="height: 44px; left: 0px; position: absolute; top: 0px; width: 100%;">
<div class="contact-list__add flx flx-al-c nav-button_add_friend clickable "><i class="fa fa-icon-add-friend contact-list__add__icon "></i><span class="contact_add_friend_item" data-translate-inner="STR_CONTACT_ADD_FRIEND">Thêm bạn</span></div>
</div>
<div style="height: 72px; left: 0px; position: absolute; top: 266px; width: 100%;">
<div class="item minimized rel list-friend-conctact ">
<div class="avatar avatar--m list-friend-conctact__avatar">
<div class="avatar-img outline" style="background-image: url("//s120.avatar.talk.zdn.vn/4/8/c/f/27/120/c5ee9f2b5a5a87d227fe2faf376f2e2c.jpg");"></div>
</div>
<div class="list-friend-conctact friend_onlines_dot"></div>
<div class="item-title list-friend-conctact__title has-status ">Text1
<span class="friend_online_status truncate" style="top: 0px; left: 3px;">Text dont want</span>
</div>
</div>
</div>
</div>
Upvotes: 1
Views: 1140
Reputation: 193058
As per the HTML you have provided to extract the text Text1 you can use the following code block:
IWebElement myElem = driver.FindElement(By.XPath("//div[@class='item-title list-friend-conctact__title has-status']"));
string myText = (string)((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].firstChild.textContent;", myElem);
Upvotes: 1