Selenium Python:使用find_element_by_css_selector()方法从子元素中删除文本

时间:2015-09-25 08:30:46

标签: python-2.7 selenium methods selenium-webdriver css-selectors

在使用Python的Selenium中,我一直在尝试从具有子元素的DIV选择器中选择文本。代码如下所示: -

<div class="empty-cart-message">
 There are no items in this cart.<br>
<button class="btn btn-blue close continue-button continue-empty-btn tmargin10">Continue Shopping</button> 
</div>

我需要文字&#34;此购物车中没有商品。&#34;只是,我正在使用find_element_by_css_selector()方法。

我面临的问题是,除了我需要的文本外,它还会获取按钮标签内的文本。我使用的代码如下所示: -

cart_status=driver.find_element_by_css_selector("div.empty-cart-message").text

if(assertEqual("There are no items in this cart", cart_status)):
   cont_btn=driver.find_element_by_css_selector("button.continue-empty-bin")
   cont_btn.click()

我无法找到任何可以消除/取消选择&#34;按钮&#34;直接来自我正在使用的方法。

1 个答案:

答案 0 :(得分:0)

您可以使用以下xpath:

//div[@class='empty-cart-message' ]/child::text()

但是,目前selenium不支持对象(因为它不是webelement),你可以运行Python javascript executor:

returnText = driver.execute_script("return  document.evaluate(\"//div[@class='empty-cart-message']/child::text()\", document, null, XPathResult.STRING_TYPE, null).stringValue;")