我需要在selenium python中的动态h1元素中找到该值

我需要在selenium python中的动态h1元素中找到该值,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我正在使用python 2.7、Firefox和selenium 3.11 我有一行动态编号作为id: <div class="class1" dojoattachpoint="titleText" dojoattachevent="onmouseover:_mouseOverTitle,onmouseout:_mouseOutTitle,onmousedown:_mouseDownTitle"> <h1 id=&qu

我正在使用python 2.7、Firefox和selenium 3.11

我有一行动态编号作为id:

<div class="class1" dojoattachpoint="titleText" dojoattachevent="onmouseover:_mouseOverTitle,onmouseout:_mouseOutTitle,onmousedown:_mouseDownTitle">
<h1 id="_N90399546_title">‪textToFind</h1>

‪文本查找
我想找到textToFind

我尝试了以下方法:

  • x=driver.find\u element\u by_xpath(“//h1[@id='dynamicNumber']”)
    ->当动态数相同时,我正在尝试使用它,以查看它是否有效,但没有

    结果:找不到textToFind

  • x=driver.find\u element\u by\u link\u text('textToFind')
    ->在动态搜索中不起作用

    结果:找不到textToFind

  • x=driver.通过xpath(“/*[@class='class1'][contains(text(),'textToFind')]”)查找元素

    结果:找不到textToFind

  • x=driver。通过xpath(“/*[@class='class1'][contains(text(),'textToFind')]”)查找元素。getAttribute(“innerHTML”)

    结果:找不到textToFind

  • x=driver.通过xpath(“/*[@class='class1']”)查找元素

    结果:找不到textToFind

  • 我不需要提取文本、获取属性或任何东西,我只需要找到“textToFind”字符串。我真的很感谢你的帮助

    我已经搜索了几个selenium动态教程,查看了几十个网站,在stackoverflow中搜索了几个类似的帖子,但我找不到我需要的文本

  • 如果您有修复文本字符串(textToFind,在您的情况下)。然后继续执行以下xpath:

    x = driver.find_element_by_xpath("//div[@class='class1']/h1[contains(text(),'textToFind')]")
    
  • 如果id不是完全动态的。意思是,如果它附加了一些动态数字或字母表,可以是开始、结束或中间。例如
    然后使用CSS选择器使用以下部分匹配:

    • 如果固定前缀字符串,例如
      id=“some-prefix-132dsad233”
      ,则
      x=driver。通过css选择器(“h1[id^='some-prefix'])查找元素

    • 如果固定后缀字符串,例如
      id=“132dsad233some postfix”
      x=driver。通过css\u选择器(“h1[id$='some-postfix']”查找元素

    • 匹配id中的一些固定文本,例如
      id=“132dsad233some postfix”
      然后
      x=driver。通过css选择器(“h1[id*='some']”查找元素

  • 您也可以同时使用这两种方法,例如,
    id=“hello132dsad233somepostfix”
    然后
    x=driver。通过css\u选择器(“h1[id^='hello'][id$='postfix']”查找元素


    请使用其他环绕元素组合,使您的定位器独特且坚固

    您可以尝试以下css选择器

    print(driver.find_element_by_css_selector("div.class1>h1").text)
    

    谢谢,让我试试你的建议。ID是100%动态的…答案1失败,我找不到我正在查找的文本,2不适用于我的案例。。。谢谢你,我也试过了:X=driver。通过xpath(“//div[@class='class1'和contains(text(),'textToFind')])查找元素。请用你网站的实际html片段更新问题。它太庞大了,让我尝试获取上面我工作的部分谢谢,但是我如何映射文本以通过css选择器找到它?我需要通过文本找到它…@Gusbok:然后尝试下面的
    xpath
    ,即
    print(driver.find_element\u by_xpath(//h1[包含(,'textToFind'))”。text)
    您可能需要在元素之前等待一些时间。谢谢,我正在运行第一个建议,如果它不起作用,我将尝试这个!我还尝试了:x=driver.find_element_by_xpath(//h1[contains(,'textToFind')])”)。text()@Gusbok:您遇到了什么错误?请检查DOM树中是否存在
    iframe