我试图在Google Play商店中搜索一个应用程序名称。为此,我必须单击右上角的镜头按钮才能使其显示,然后介绍名称。
我的方法是这样的,但我没有运气。我尝试使用其他选择器,但我不确定我是否选择了正确的选择器(我没有使用Selenium的经验)。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("https://play.google.com/store")
driver.find_element_by_css_selector('VfPpkd-Bz112c-Jh9lGc').click()
inputElement = driver.find_element_by_id("oA4zhb")
inputElement.send_keys('some app name')
有没有人成功地做到了这一点,可以提供方向,使这段代码实现其目的?
先谢了。
2条答案
按热度按时间gjmwrych1#
VfPpkd-Bz112c-Jh9lGc
不是搜索图标的有效CSS选择器,除非它是元素名(其实不是)。这实际上是一个类名,所以CSS选择器应该是.VfPpkd-Bz112c-Jh9lGc
,注意在开始处添加的句点表示类名称。如果刷新页面几次,您将看到类更改名称,这表明它在定位器中将不再有用。你需要找到一些永远不会改变的东西。理想情况下,它应该有一个ID或名称,但它两者都没有。我会使用CSS选择器,button[aria-label="Search"]
。一旦搜索框打开,你需要找到它。你的代码正在寻找一个ID“oA4zhb”,但如果你看HTML,你会发现INPUT没有一个ID。你引用的是
jsname
属性。这可能是稳定的,也可能是不稳定的,我不确定。我会使用CSS选择器,input[aria-label="Search Google Play"]
。把代码放在一起
bvn4nwqk2#
交叉检查使用的货位。
单击搜索图标,您可以使用
按.xpath(“//按钮/i[包含(.,'search')]”)
在搜索框中输入使用
//input[@aria-label ='搜索谷歌播放']