硒python文本在pdb中显示,但在print()中为空

时间:2019-07-04 06:05:34

标签: python-3.x selenium-webdriver pdb

我正在使用硒在特定元素内获取文本。它有时打印文本,有时打印空字符串。但是它总是在pdb中显示文本。

我尝试了.text.get_attribute('innerText').get_attribute('textContent') 也使用get_elements_by_class_nameget_element_by_css_selector和xpath 结果相同。在pdb中总是完美,但在print()

options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome('chromedriver', options=options)
driver.implicitly_wait(4)
driver.get('some url')

no = driver.find_element_by_css_selector('span.hashtag + span')
span = driver.find_elements_by_class_name('live-label-draw')[0].find_element_by_css_selector('span:last-child')
parent = driver.find_elements_by_class_name('live-label-draw')[0]

print(parent.text)
print('-------by class name', span.text, span.get_attribute('innerText'), span.get_attribute('textContent'))

print('-------by css', no.tag_name, no.get_attribute('textContent'), no.get_attribute('innerText'), no.text)

import pdb; pdb.set_trace()

-Insdie pdb--
no.text,no.get_attribute('innerText'),span.text,span.get_attribute('innrText')全部打印31907040069
另外parent.text打印#31907040069

<span class="live-label-draw">
  <span class="hashtag">#</span>
  <span>31907040069</span>  <--- trying to get '31907040069'
</span>

预期:
#31907040069
------按类别名称31907040069 31907040069 31907040069
------由CSS 31907040069 31907040069 31907040069

实际结果:

------按班级
------通过CSS

1 个答案:

答案 0 :(得分:0)

我只需要使用WebDriverWait().until进行显式等待,直到该元素可见。
这就是它在pdb中起作用的原因,因为它会停止并自动等待。