我的代码:
class TestClassMy(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test1(self):
driver = self.driver
driver.get('http://www.babylegs.com')
driver.maximize_window()
element_to_select = driver.find_element_by_xpath(".//*[@id='nav']/ol/li[5]/a") #d.send_keys(Keys.NULL)
actions = ActionChains(driver)
element_to_select.click_and_hold(element_to_select).perform()
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main()
答案 0 :(得分:2)
假设您的浏览器是Firefox,则Python代码如下所示:
driver = webdriver.Firefox(executable_path=driver_path)
action = webdriver.ActionChains(driver)
element = driver.find_element_by_id('your-id') # or your another selector here
action.move_to_element(element)
action.perform()
如果您已经将光标移到某个元素上并且想要相对重新定位,则可以使用:
action.move_by_offset(10, 20) # 10px to the right, 20px to bottom
action.perform()
或更短:
action.move_by_offset(10, 20).perform()
答案 1 :(得分:0)
使用ActionChains,如:
actions.move_to_element(element_to_select).perform()
然后你可以做你需要的。这就是你如何使用下拉菜单,finding
元素,然后执行一个链来基本上将鼠标移动到正确的位置。
然后,一旦菜单(和子菜单)曝光,您可以点击它们(如您所见,您无法点击不可见的内容。
在您的情况下,从“袜子”菜单中选择一些内容:
e1 = driver.find_element_by_xpath('//*[@id="nav"]/ol/li[5]/a')
e2 = e1.find_element_by_xpath('../ul/li[1]/a')
actions.move_to_element(e1).move_to_element(e2).perform()
e2.click()