Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用selenium python查找动态网站的web元素_Python_Selenium_Xpath_Css Selectors_Webdriverwait - Fatal编程技术网

使用selenium python查找动态网站的web元素

使用selenium python查找动态网站的web元素,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我想根据一些字段的web元素(xpath、类等)来刮取它们的文本 ...... ...... ...... ...... 我需要的文本 ...... ...... ...... ...... 我不需要文本 我的朋友,这是最好的解决方案,当你看到这篇文章时,右键点击网页。在DOM检查器中右键单击,然后单击复制->复制完整XPath值。然后您可能需要执行.text.source来获取这些值。但是试着玩一下。要打印我需要的文本,可以使用以下任一选项: 使用css\u选择器和get\u属性():

我想根据一些字段的web元素(xpath、类等)来刮取它们的文本


......
......
......
......
我需要的文本
......
......
......
......
我不需要文本

我的朋友,这是最好的解决方案,当你看到这篇文章时,右键点击网页。在DOM检查器中右键单击,然后单击复制->复制完整XPath值。然后您可能需要执行.text.source来获取这些值。但是试着玩一下。

要打印我需要的文本,可以使用以下任一选项:

  • 使用
    css\u选择器
    get\u属性()

  • 使用
    xpath
    和文本属性:

    print(driver.find_element_by_xpath("//div[@class='myOnlyElement']//div[@class='reaction']").text)
    
    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='myOnlyElement']//div[@class='reaction']"))).text)
    

理想情况下,要打印文本我需要的文本,您必须对位于()的元素的
可见性进行归纳,并且您可以使用以下任一选项:

  • 使用
    CSS\u选择器
    get\u属性()

  • 使用
    XPATH
    和文本属性:

    print(driver.find_element_by_xpath("//div[@class='myOnlyElement']//div[@class='reaction']").text)
    
    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='myOnlyElement']//div[@class='reaction']"))).text)
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
您可以在中找到相关的讨论


奥特罗 链接到有用的文档:

  • 方法
    获取元素的给定属性或属性。
  • 属性返回元素的文本。

  • driver.find\u element\u by\u class\u name是正确的语法。另外,只需检查是否有MyLem。或者使用waits。您可以使用find elements获取与类匹配的元素数组。。。然后迭代并获取InnerHTML:thiselement.get_属性('InnerHTML')以确定它是您需要的文本还是不需要的文本。问题是,每当我访问任何链接时,我都希望从第一个元素获取信息。是否存在。如果元素存在,获取文本;如果元素不存在,打印“无文本”。感谢您的帮助。但fullXPATH在动态网站中不起作用。很不幸,这是真的。。对不起,我的朋友