重新排序选项Selenium Python



Python 3.9和Selenium 4.0.0

HTML代码:

<select id="selectedDisplayColumns" name="selectedDisplayColumns" multiple="multiple" size="8">
<option value="first_name">First Name</option>
<option value="last_name">Last Name</option>
<option value="phone">Phone</option>
<option value="email">Email</option>
<option value="city">City</option>
<option value="state">State</option>
</select>

每当我运行报告时,这些选项可能会混淆,因此first_name可能是第四个选项,而不是第一个选项,但有时它可能是第一个选项。

所以我试着让硒重新排序到它总是首先有first name的位置(有一个重新排序按钮,带有//*[@id="configureDisplayColumnsContainer"]/fieldset/div[2]/p/input[4]//*[@id="configureDisplayColumnsContainer"]/fieldset/div[2]/p/input[5]的xpath,分别是move upmove down。我必须首先选择该选项,然后单击上移或下移来更改顺序。

这是我当前的代码:

from selenium.webdriver.support.ui import Select
#  xpath for the option menu
menu = Select(driver.find_element(By.Xpath, '//*[@id="selectedDisplayColumns"]')
selector = Select(menu)
for index in range(1, len(menu)-1):
print(menu[index])

我建议使用.getAttribute功能来提取属性的名称。您需要对其进行调整,以获得您正在抓取的页面的确切布局,但我提供了一个演示此功能的快速示例:

element = driver.find_element_by_xpath("[@id='configureDisplayColumnsContainer']/fieldset/div[2]/p/input[0]")
attribute = element.get_attribute("value")
print(attribute)

这应该打印出特定xpath下的第一个属性;first_name";。从那时起,这只是一个建立一个最适合你刮刮需求的组织体系的问题。

最新更新