browser = webdriver.Chrome(path)browser.maximize_window()browser.get("https://www.flipkart.com")browser.find_element_by_xpath('//button[@class="_2AkmmA _29YdH8"]').click()browser.find_element_by_name("q").send_keys("Mobiles")browser.find_element_by_xpath("//button[@class='vh79eN']").click()p = browser.find_elements_by_xpath("//div[@class='_3wU53n']")使用上面的代码,我必须在 flipkart 中搜索Mobiles并单击任何应该在新选项卡上打开页面的 Mobile。当 Xpath 返回手机列表时,我遇到了定位手机的问题。我想找到第一个元素并单击以便它在新选项卡中打开。谁能帮我这个?谢谢!
3 回答

米琪卡哇伊
TA贡献1998条经验 获得超6个赞
您可以使用硒中的列表类存储在列表中。
列表 lists=driver.findElements(By.xpath("..")); 列表.get(0).click();
//上面的代码用于单击列表中的第一个元素

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
一旦您“点击”搜索按钮,网页将重定向到一个显示手机列表的新页面。但是,加载页面需要一些时间。所以你需要给它加一些延迟,以便执行接下来的动作。
<the code above remains the same>
browser.find_element_by_xpath("//button[@class='vh79eN']").click()
import time
time.sleep(3) # Added a delay
browser.find_element_by_xpath("//div[@class='_3wU53n']").click() # Changed the "elements" to "element"
这将在新选项卡中打开第一个手机。
附言。如果您只需要第一部手机,此代码非常有用。如果您需要页面上的所有手机,则必须为其创建一个循环!
添加回答
举报
0/150
提交
取消