0 python selenium xpath webdriver selenium-webdriver
我的页面有一个包含11列的表,给出了第2列的文本值,我想点击同一行的第11列(箭头按钮).
我的DOM看起来像这样:
<table id=”atab”  width=”100%” class=”at-class”>`  
    <thead>…</thead>  
    <tbody>  
        <tr>...</tr>  
        <tr>  
            <td>…</td>  
            <td>  
                <a href=”/abc/def/ghi/prop?id=1”>grp1</a>  
            </td>  
            <td>…</td>  
            <td>…</td>  
            <td>200</td>  
            <td>…</td>  
            <td>…</td>  
            <td>…</td>  
            <td>…</td>  
            <td>…</td>  
            <td>  
                <ul class=”dropwd”  
                    <li class>  
                        <input class=”a-act a-menu-button” type=”button” value=”^”  
                        <ul class=”sub_menu” style=”vis””>…</ul>  
                    </li>  
                </ul>  
            </td>  
        <tr>  
    <tbody>  
Run Code Online (Sandbox Code Playgroud)
这个工作(因为我刚刚从inspect元素中获取了xpath).我不能用它.
myxpath = "//*[@id='atab']/tbody/tr[2]/td[11]/ul/li/input”
myxpath.click()
Run Code Online (Sandbox Code Playgroud)
我需要使用contains,然后抓住兄弟(第11个位置,从我拥有的第9个位置).我为myxpath尝试了以下内容,但它无法找到该元素.我在其他地方使用过相同的格式,很好.唯一的区别是这次,我没有得到相邻的兄弟,而是第x个兄弟姐妹.
哪里 campg = grp1
//table[@class='at-class']//td[contains(text(),' " + campg + " ')]/following-sibling::td[9]/ul/li/input
//* [@id='atab']//td[contains(text(),' " + campg + " ')]/following-sibling::td[9]/ul/li/input
//* [@id='campaigns']//td[contains(text(),' " + campg +  " ')]/following-sibling::td[9]/ul/li/input[@type=’button’]
Run Code Online (Sandbox Code Playgroud)
我也尝试了其他组合.
此XPath表达式选择表,查找匹配的行(其中第二列包含您正在搜索的针),然后在此行中选择具有相关输入元素的第11列.
无需使用祖先和以下任何相对轴步骤,只有降序树通常更快,更易读,更不容易出错.
//table[@id='atab']//tr[contains(td[2], 'needle')]/td[11]/ul/li/input
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           7002 次  |  
        
|   最近记录:  |