无法在下拉列表中向下导航,使用Python在Selenium webdriver中使用keys.ARROW_DOWN

时间:2014-05-15 10:39:26

标签: python css selenium

我在从元素中获取文本时遇到问题,并在尝试获取隐藏元素的值时遇到问题,因此我尝试使用键向下隐藏元素,然后从中获取文本。

我一直在尝试使用arrow_down键导航到表格的行,但即使尝试了多个选项后它也无法正常工作。

我的html文件结构如下:

<table class="activities-table">
<thead style="display:none">
<tbody>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>
<tr>

我有与每个元素相对应的元素。

到目前为止我尝试过的事情:

1.
    elem_list = self.elements
    elem = elem_list[0] #took the first element
    actions = ActionChains(driver)
    actions.click(elem).send_keys_to_element(elem,Keys.SPACE ).perform()
2.
    elem_pos = elem.location['y']
    driver.execute_script("window.scroll(0, %s)"%elem_pos)
    elem.click()
    time.sleep(2)
    elem.send_keys(Keys.ARROW_DOWN)
3.
    elem_list = self.elements
    elem = elem_list[0]
    elem.click()
    elem.send_keys(Keys.ARROW_DOWN)

每次点击都有效,但send_keys执行时却没有执行任何操作。

1 个答案:

答案 0 :(得分:2)

解决了以下问题。

下面的elem1是表格滚动条的元素:

elem1 = driver.find_element_by_xpath(<xpath of the table scroller>)
actionChains = ActionChains(driver);
numberOfPixels = 50;
actionChains.move_to_element(elem1).click_and_hold().move_by_offset(0,numberOfPixels).release().perform();

可以根据需要改变要拖动的像素数