如何根据提供的html从菜单中选择文件选项?

时间:2018-08-21 02:48:55

标签: python selenium selenium-webdriver xpath webdriver

我正在尝试进行自动化操作,并碰到了中间。 无法从子菜单中选择选项。

尝试了所有解决方案,从堆栈溢出,什么都不起作用。

附加代码。

<input id="arid_WIN_0_2000053" class="text " readonly="" style="top: 0px; left: 0px; width: 72px; height: 21px;" title="Screen" type="text">

这是我需要单击的ID,因此出现一个下拉列表。

来自不同的部分,代码是

<table class="MenuTable" style="width: 93px;" cellspacing="0" cellpadding="0">
   <tbody class="MenuTableBody">
      <tr class="MenuTableRow">
         <td class="MenuEntryName" nowrap="">Screen</td>
         <td class="MenuEntryNoSub" arvalue="Screen"></td>
      </tr>
      <tr class="MenuTableRow">
         <td class="MenuEntryName" nowrap="">File</td>
         <td class="MenuEntryNoSub" arvalue="File"></td>
      </tr>
      <tr class="MenuTableRow">
         <td class="MenuEntryName" nowrap="">Printer</td>
         <td class="MenuEntryNoSub" arvalue="Printer"></td>
      </tr>
      <tr class="MenuTableRow">
         <td class="MenuEntryNameHover" nowrap="">(clear)</td>
         <td class="MenuEntryNoSubHover" arvalue=""></td>
      </tr>
   </tbody>
</table>

选择ID arid_WIN_0_2000053后,我需要选择“文件”选项。

谢谢。

2 个答案:

答案 0 :(得分:0)

用作CSS定位符:.MenuTableRow:nth-of-type(2) .MenuEntryName

答案 1 :(得分:0)

根据 HTML 选择一个选项,例如从子菜单中文件,您可以使用以下解决方案之一:

from typing import NamedTuple


class MyType(NamedTuple):
    id: int = 0
    name: str = 0

driver.find_element_by_xpath("//input[@class='text' and @title='Screen'][starts-with(@id,'arid_WIN_0_')]").click()
driver.find_element_by_xpath("//table[@class='MenuTable']//tr[@class='MenuTableRow']//td[@class='MenuEntryName' and contains(.,'File')]").click()