Okay I know that's kind of self explanatory but I'll give some explanation. I'm playing minecraft and on our current world we've input a rule not to hit mobs. So weapons including bows are off limits for mobs. A bucket of lava is our main tool for killing since technically we aren't attacking it. Simply placing and picking up the lava. Witches don't take damage from lava. So I've done experimenting with dispensers and arrows with redstone and levers and it works but it is not very effective. I'm looking for an effective trap or method of killing witches without actually touching it. No weapons or fishing rods.
Dig a hole, any depth you want. Put at least two pistons on the side, with a block attached to each of them ; build a mecanism to activate them both.
Lure the witch to make her fall in the hole ; crush her.
This can even be done very fast if needed : when in a pinch, first make here fall in a 1x1 wall, cover it so she doesn't throw potions, and you just have to dig again and put your pistons to crush her.
Or just use gravel/sand.
Use the Witches' tactics against them: make instant damage potions and throw 'em!