Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 如何提取a<;td>;元素相对于另一个的内部文本<;td>;要素_Python_Selenium_Selenium Webdriver_Xpath_Webdriver - Fatal编程技术网

Python 如何提取a<;td>;元素相对于另一个的内部文本<;td>;要素

Python 如何提取a<;td>;元素相对于另一个的内部文本<;td>;要素,python,selenium,selenium-webdriver,xpath,webdriver,Python,Selenium,Selenium Webdriver,Xpath,Webdriver,我正在python中使用selenium。我遇到了这个表webelement。我需要检查webelement中是否存在一个字符串,如果存在,则返回相应的字符串 <table width="700px" class="tableListGrid"> <thead> <tr class="tableInfoTrBox"> <th>Date</th> <th>

我正在python中使用selenium。我遇到了这个表webelement。我需要检查webelement中是否存在一个字符串,如果存在,则返回相应的字符串

<table width="700px" class="tableListGrid">
    <thead>
        <tr class="tableInfoTrBox">
            <th>Date</th>
            <th>Task Code</th>
            <!-- th>Phone Number</th -->
            <th>Fota Job</th>
            <th colspan="2" class="thLineEnd">Task Description</th>
        </tr>
    </thead>
    <tbody>                         
        <tr class="tableTr_r">                                                                                      
            <td>2018-04-06 05:48:29</td>
            <td>FU</td>
            <!-- td></td -->
            <td>
                <a href="javascript:checkSchedule('57220180406-JSA69596727');">57220180406-JSA69596727</a>
            </td>
            <td style="text-align:left;">
                                       updated from [A730FXXU1ARAB/A730FOJM1ARAB/A730FXXU1ARAB] to [A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9] 
            </td>
            <td>
                <table class="btnTypeE">
                    <tr>
                        <td>
                        <a href="#syncml" class="02320180406WSA84301933" onclick="showSyncML('IMEI352020090050529', '02320180406WSA84301933')">View</a>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>                                           
    </tbody>
</table>

日期
任务代码
Fota工作
任务描述
2018-04-06 05:48:29
傅
从[A730FXXU1ARAB/A730FOJM1ARAB/A730FXXU1ARAB]更新为[A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9]
我需要在这个元素中搜索“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”,并返回“57220180406-JSA69596727”,它出现在网页中不同位置的同一行中。在硒中有可能吗


编辑:清除代码以仅包含有用数据

可以通过使用以下Xpath查找元素来实现:

//td[contains(., 'A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9')]/preceding-sibling::td[1]/a
Xpath可以理解为

查找包含“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”的
td
。然后找到
td
在找到的
td
之前,移动到
a
标记

之后,您可以使用selenium获取文本

driver.find_element(By.XPATH, '//td[contains(., 'A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9')]/preceding-sibling::td[1]/a').text

可以通过使用以下Xpath查找元素来实现:

//td[contains(., 'A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9')]/preceding-sibling::td[1]/a
Xpath可以理解为

查找包含“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”的
td
。然后找到
td
在找到的
td
之前,移动到
a
标记

之后,您可以使用selenium获取文本

driver.find_element(By.XPATH, '//td[contains(., 'A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9')]/preceding-sibling::td[1]/a').text

要查找文本,例如A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9,并查找相关文本,例如57220180406-JSA69596727,可以编写如下函数:

def test_me(myString):
        myText = driver.find_element_by_xpath("//table[@class='tableListGrid']//tbody/tr[@class='tableTr_r']//td[.='" + myString + "']//preceding::td[1]/a").get_attribute("innerHTML")
test_me("A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9")
现在,从
main()
/
@Test
中,您可以使用所需的文本调用函数,如下所示:

def test_me(myString):
        myText = driver.find_element_by_xpath("//table[@class='tableListGrid']//tbody/tr[@class='tableTr_r']//td[.='" + myString + "']//preceding::td[1]/a").get_attribute("innerHTML")
test_me("A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9")

要查找文本,例如A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9,并查找相关文本,例如57220180406-JSA69596727,可以编写如下函数:

def test_me(myString):
        myText = driver.find_element_by_xpath("//table[@class='tableListGrid']//tbody/tr[@class='tableTr_r']//td[.='" + myString + "']//preceding::td[1]/a").get_attribute("innerHTML")
test_me("A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9")
现在,从
main()
/
@Test
中,您可以使用所需的文本调用函数,如下所示:

def test_me(myString):
        myText = driver.find_element_by_xpath("//table[@class='tableListGrid']//tbody/tr[@class='tableTr_r']//td[.='" + myString + "']//preceding::td[1]/a").get_attribute("innerHTML")
test_me("A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9")

更新HTML示例,因为它不是真正可读的。共享您当前的Python代码以及已编辑的代码。我得到了一列字符串的一部分,需要在另一列中返回该字符串。本例中的第一个字符串是“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”,预期的输出是“57220180406-JSA69596727”,请更新HTML示例,因为它不是真正可读的。共享您当前的Python代码以及已编辑的代码。我得到了一列字符串的一部分,需要在另一列中返回该字符串。本例中的第一个字符串是“A730FXXU2ARC9/A730FOJM2ARC1/A730FXXU2ARC9”,预期的输出是“57220180406-JSA69596727”,带有引号的语法错误很小,但效果很好。谢谢男人:带引号的小语法错误,但除了它的魅力。谢谢男士:D