如何通过Python使用Selenium从元素获取文本

时间:2019-06-03 19:44:21

标签: python-2.7 selenium selenium-webdriver webdriver pagesource

我正在为网站编写自动脚本,并希望验证是否已创建表单。我已经创建了一个名为“ Blah!”的表格。

该网页现在将具有一个表单,该表单的列标题为“名称”,并显示“ Blah”。

在html文件的某个地方,将有一个名为“ Blah”的字符串。我试图获取包含该字符串的html并将其设置为变量,然后进行比较以查看该变量是否在其中包含“ blah”。使用python,所以看起来应该像这样:

x = driver.find_element_by_xpath(Some_code_to_catch_the_html)
print ("blah" in x) #return true is x includes the string- form was created!

除了没有找到文本“ blah!”以外,我运行的代码没有任何错误。 注意:Div表示“等等!”没有唯一的ID,因此我必须对该块使用ID。

实际代码:

element = driver.find_elements_by_xpath("//*[@id='dashboard-container-d08a6dcd-dc17-4662-9156-7fe74a4abc15']")
print(element[0].text)
assert "blah!" in element, "text not found in element"
# I have also used 'element without the index.
# here is the actual id for the table where 'blah!'is created under >> //*[@id='dashboard-container-d08a6dcd-dc17-4662-9156-7fe74a4abc15']/div[1]/div[2]/div/div/form/div[5]/table/tbody

在什么情况下无法从html返回文本?

1 个答案:

答案 0 :(得分:0)

要验证是否有任何特定的页面源其中包含某个元素/文本/表单,可以使用{{1}在HTML DOM中搜索元素/文本/表单。 },您可以按照以下解决方案进行操作:

  • 代码块:

    driver.page_source
  • 控制台输出:

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    driver.get("http://www.python.org")
    print("Don Powell" in driver.page_source)
    elem = driver.find_element_by_name("q")
    elem.clear()
    elem.send_keys("pycon")
    elem.send_keys(Keys.RETURN)
    print("Don Powell" not in driver.page_source)