Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Python 获取文本?从完整的xpath快速问题_Python_Xpath - Fatal编程技术网

Python 获取文本?从完整的xpath快速问题

Python 获取文本?从完整的xpath快速问题,python,xpath,Python,Xpath,编程方面相对较新,使用Selenium和Xpath编写Python 这是从这个网站: 我想做的是复制过去收入的日期 问题是它在表中,并且它也有标签 我有一个完整的Xpath: /html/body/div[1]/main/article/form/div[8]/div[2]/div[2]/div/div[5]/div/table/tbody/tr[2]/td[1] 经检查,它显示了这一点 < td data-sort-value="20201027000000">

编程方面相对较新,使用Selenium和Xpath编写Python

这是从这个网站:

我想做的是复制过去收入的日期

问题是它在表中,并且它也有标签

我有一个完整的Xpath:

/html/body/div[1]/main/article/form/div[8]/div[2]/div[2]/div/div[5]/div/table/tbody/tr[2]/td[1]

经检查,它显示了这一点

< td data-sort-value="20201027000000">10/27/2020 < / td >
(行部分只是我通过一个循环迭代网站页面,没有问题。)

在我剩下的代码中,它非常简单:

stringeEPSxpath = """/html/body/div[1]/main/article/form/div[8]/div[2]/div[2]/div/div[5]/div/table/tbody/tr[""" + row + """]/td[3]"""
    stringEPSxpath = """/html/body/div[1]/main/article/form/div[8]/div[2]/div[2]/div/div[5]/div/table/tbody/tr[""" + row + """]/td[4]"""

    elem = driver.find_element_by_xpath(stringeEPSxpath)
    elem2 = driver.find_element_by_xpath(stringEPSxpath)

    fix1 = (elem.text).replace(')','')
    fix2 = (elem2.text).replace(')','')

    eps1 = fix1.replace('(','-')
    eps2 = fix2.replace('(','-')
正如您所看到的,我首先要做的就是为它设置一个变量,然后使用.text将其转换为字符串。但现在这对日期不起作用


最终的结果是
AttributeError的错误:“str”对象没有属性“text”
,我怀疑这是因为
数据排序值=“20201027000000”
部分。

在此代码中,stringeEPSxpath是字符串,而不是WebElement

stringeEPSxpath = """/html/body/div[1]/main/article/form/div[8]/div[2]/div[2]/div/div[5]/div/table/tbody/tr[""" + row + """]/td[1]"""

Date = stringeEPSxpath.text
你可以试试这个:

from selenium.webdriver.common.by import By

element = driver.find_element(By.XPATH,"//td[@data-sort-value='20201027000000']")
Date = element.text

忘记驱动程序。通过实际使用xpath的xpath(stringeEPSxpath)查找元素。由于我从我的另一个程序复制并粘贴了内容,我想我删除的内容太多了,完全忘了添加驱动程序.findxpath。

你能编辑你的问题并发布url吗?不是同一个股票(另一个是AMZN),但完全相同的格式等等,不管我找到了原因,我忘了写一行代码让它实际工作。谢谢你的回复,这让我再次着手解决这个问题。有没有办法重复你的方法?是否有方法通过数据排序值部分进行排序。因为“20201027000000”部分是我正在尝试查找的。别介意我忘记了一行代码(driver.find_elementbyxppath),这行代码实际上使事情正常运行,谢谢。此代码将检查一个元素。element=driver.find_element(By.XPATH,“//td[contains(@data sort value,'20201027000000')])通过将find_元素更改为find_元素,可以找到td的元素列表contains@data sort value。
from selenium.webdriver.common.by import By

element = driver.find_element(By.XPATH,"//td[@data-sort-value='20201027000000']")
Date = element.text