Selenium click 在 Chrome 中不起作用 [复制]

Selenium click not working in Chrome [duplicate]

提问人:munyb 提问时间:6/6/2018 最后编辑:chakradhar kasturimunyb 更新时间:6/6/2018 访问量:7278

问:

我正在尝试单击 instagram 页面上的锚标签,上面写着登录。这是我的代码。

browser = webdriver.Chrome()
browser.get('https://instagram.com')
login_elem = browser.findElement(By.xpath('//p/a[text() = "Log in"'))
login_elem.click()

浏览器将打开,但未单击该元素。我尝试了其他各种 xpaths,但没有一个有效。这是Instagram来源的图片。

python google-chrome selenium instagram chrome-web-driver

评论

0赞 chakradhar kasturi 6/6/2018
浏览器对象,即 WebDriver 具有方法,并且 By.xpath 应编写为 阅读有关 selenium api 的信息find_elementbrowser.find_element(By.XPATH, '//a[text() = "Log in"]')
1赞 John Gordon 6/6/2018
该 xpath 缺少结束语 .]
0赞 munyb 6/6/2018
修复了这两个问题,但仍然不单击链接。
0赞 Ishita Shah 6/6/2018
@munyb 你得到什么错误?请分享错误堆栈跟踪

答:

0赞 Prany 6/6/2018 #1

您可以在 Xpath 下面使用

.//*[@id='react-root']/section/main/article/div[2]/div[2]/p/a

或者 CSS 选择器

.izU2O>a

或链接文本

Log in

评论

0赞 munyb 6/6/2018
已经尝试了所有这些,但由于某种原因没有奏效。只需打开浏览器,什么也没发生。然后在一段时间后关闭。
0赞 Prany 6/6/2018
您的 Chrome 版本和 Chrome 驱动程序版本是什么?
0赞 munyb 6/6/2018
我相信 66.0.3359.18 和 Web 驱动程序 2.39
0赞 Prany 6/6/2018
你能用 - webdriver 初始化驱动程序吗?Chrome(executable_path=“/path/to/chromedriver exe”)
0赞 munyb 6/6/2018
改为这样,browser = webdriver。Chrome(executable_path=“/Users/name/Downloads/chromedriver”) 仍然没有。
0赞 cruisepandey 6/6/2018 #2

试试这个代码:

element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "Log in")))
element.click()
0赞 chakradhar kasturi 6/6/2018 #3

这是我在本地系统上尝试过的,它奏效了

from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome(executable_path="D:\\cs\\chromedriver.exe")
driver.get("https://www.instagram.com/")
a=driver.find_element(By.XPATH,'//a[text() = "Log in"]')
# added this step for compatibility of scrolling to the view
driver.execute_script("return arguments[0].scrollIntoView();", a)
a.click()

更正了 XPATH 和其他更改。请注意,可执行路径应替换为您的路径。

评论

0赞 munyb 6/6/2018
这奏效了!谢谢。我相信问题是我需要导入 By?...欣赏它。